java学习笔记(一)--(数据类型与运算符)&(程序逻辑控制与方法定义)&(数组的定义与使用)

1 .Java源文件:*.java,保存原始java代码

编译过程:javac 要编译的源文件->.class文件(二进制文件).给JVM阅读的

解释过程:java主类名

向主方法传递多个参数java启动的主类名 参数1 + 空格 + 参数2 ...

编译过程支持中文:javac -encoding  UTF-8 主类名.java

2..标识符与关键字

2 .1 java注释

单行注释 : //

多行注释 :/* */ (不推荐)

文档注释 :/** */(用于方法与类之上描述其作用)

/**

    注释内容

*/

2 .2 java标识符

  • 表示符由字母,“数字”,“_”所组成、$所组成,其中不能以数字开头,不能用Java中的保留字(关键字)

  • 标识符采用有意义地方简单命名

驼峰命名法:

  • 方法,变量(小驼峰):标识符有多个单词组成,第一个单词的首字母小写,带二个之后的单词首字母大写。eg:myFunction(),myFirstInt;

  • 类(大驼峰):类名是以大写字母开头的名词,如果类名由多个单词组成,则每个单词首字母大写。Java源文件文件名必须与公共类(public class)的名称相同。eg:class FirstDemo

  • 常量:命名全大写,多个单词间以"_"分隔。eg:MY_STRING

3 .数据类型划分

程序时一场数字游戏

3 .1基本数据类型(8大基本数据类型)

3 .1.1数值型

    整形:byte—1字节[-128~127],short,int—4字节[-2^31~2^31-1],long—8字节[-2^63~2^63(java编译器)](默认值为0)

    浮点型:double,float(默认值为0.0)

3 .1.2字符型

    char(默认值为‘\    u0000’)

3 .1.3布尔型

    boolean(默认值为false)

    数据类型的使用:

  •  描述整数就有int,小数就用double

  •  long一般就用于描述日期、时间、内存或文件大小(字节)

  •  如果要进行编码转换或者进行二进制流的操作,使用byte[-127~128]

  • char一般用于描述中文(基本忽略)

3 .1.4在Java程序中,任何一个整形常量都是int类型

    所有程序从右向左执行

    最大值加一,最小值减一 最高位取反

3 .1.5在Java中声明一个long型常量,数字后加上一个l或L(推荐)

    面试小题:System.out.println(11+1l);   //12

    大数据类型与小数据类型做数值运算时,小的数据类型会自动转为大的数据类型,无序强转

    eg:long num1=maxValue+1L;

    eg:long num1=(long)maxValue+1;  这里long相当于声明

    大数据类型转为小数据类型必须强转,可能会丢失内容

    整形直接量:只要整型直接量与整型变量匹配,就可以直接将整型直接量赋值给该整型变量。如果直接量太大,超出该变量的存储范围,就会出现编译出错

    例外:byte与int类型转换 ****

    整形常量赋值给byte变量时,若常量值在byte类型保存范围中可以直接赋值无须强转;整形变量无论是否在byte类型的保存范围中,一律需要强转

    eg:

    byte b1=120;//OK

    int num1=120;

    byte b2=num1; // error,必须强转

    byte b3=130;// error ,超出byte范围,需要强转

    整形直接量:只要整型直接量与整型变量匹配,就可以直接将整型直接量赋值给该整型变量。如果直接量太大,超出该变量的存储范围,就会出现编译出错

    byte b1=300;

    输出为44,取了底层的8位

3 .1.6小数默认为double类型,要声明float类型,需要在浮点数常量后边加f或F

    float f1=10.2F;

    float f2=(float)10.2;//强转

3 .1.7所有数据类型的默认类型必须结合类(new Test().age)来观察,主方法中数据类型不存在默认值,

3 .1.8字符型char(\u0000),char与int可以互相转换,‘ ’表示字符

    char c =10;

    //jvav中不相等,c中回去试试

    if(‘0’==0){

        //.....

    }   

3.1.9布尔型(true,false)

  • 6个数值型,1个字符,1个布尔
  • 表示真假不用0,1,真为true假为false

3 .2引用数据类型

  • 数组,类,接口(默认值为null)
  • 初见String类-默认null
  • 字符串常量用“ ”表示
  • 在java中String优先级比较高,与任何奇特数据类型做“+”操作,首先会将其他数据类型转化成String类,再做拼接

Java运算符

  • 自增自减
  • 三目运算符:布尔表达式?数值1:数值2;
  • 逻辑运算符(四个)
  • 逻辑或:|  (多个表达式都需要判断)
  • 短路或:|| (当多个条件有一个返回为true,剩余条件不用判断)(推荐)
  • 短路:一旦能够准确无误的确定整个表达式的值,就不在计算表达式余下的部分
  • 位运算符:(|,&,^,~,>>, <<)

              2>>4    //0

              2<<4    //32

  • java中增加了一种“无符号”右移操作符(>>>),它使用“零扩展”:无论正负,都在高位插入0
  • 一元加减操作符(+-)和二元加减操作符(+-)的符号相同

              eg.一元加减操作符:x=-a;二元加减操作符:x-=a;

  • 一元操作符(~)一元操作符不可与“=”联合使用 

Java程序结构

分支结构

switch(字符|数值|枚举|String){

    case a:

            ..

    default:

            ..

}

没有break语句,switch会运行满足条件的所有分支。

for循环语法:

for(循环初始化;循环结束判断;修改循环结束条件){

        循环体;

}

执行顺序:①循环初始化②循环结束判断③循环体④修改循环结束条件

Java中方法的定义和使用(直接在主方法中调用

public static 方法返回值 方法名称(【参数类型 参数值  ...】){

      方法体代码

    【return 返回值】;

}

void声明的方法没有返回值,可以与return语句来结束调用

Java方法只有值传递

方法重载(重要)这就是不论在print函数中扔啥都可以的原因

定义:在一个类中方法名称相同,参数的个数或者类型不同(参数顺序),与返回值无关!!!

顺序不同,其余相同,严格来说不算重载

编码规范:重载的方法返回值一定相同;

方法递归

Java数组  一组相关类型变量集合,可以通过统一方法来操作(引用数据类型)

1.数组动态初始化

数据类型[] 数组名称=new 数据类型[长度]

eg:

int[] data=new int[5];

a.数组元素访问通过索引完成.下标默认从0开始, 如果索引下标超过数组长度,会抛出数组越界异常(运行时异常)

b.动态初始化后的数组,每个元素都有其默认值。

c.查看数组长度 数组名称.length

d.数组遍历推荐使用for-each循环(只限于读取数据,修改数组内容还是用原来的for循环)

for(int temp : data){

      System.out.print(temp+",");

}

1.数组引用传递

data为数组引用

引用:堆内存的别名,4字节,在栈上分配空间,指向一块堆内存的地址

2.数组静态初始化

简化格式(过眼烟云

数据类型[] 数组名称={值1,值2,...}

完整格式(推荐)

数据类型[] 数组名称=new 数据类型[]{值1,值2,...}

数组长度在数值定义后固定,不可变。

匿名数组

二维数组(开发几乎不用,应对笔试题,数据结构)

动态初始化

数据类型[][] 数据名称=new 数据类型[行个数][列个数];

静态初始化

数据类型[][] 数组名称=new 数据类型[][] {{第一行值},{第二行},...}

数组和方法的互操作(重点)

1.方法接受数组

2.方法返回数组

3.方法修改数组

Java对数组的支持

1.排序

java.util.Arrays.sort(数组名称);

import java.util.Arrays;

Arrays.sort(数组名称);

支持8大基本数据类型,默认升序排序,内部采用双轴快速排序

2.数组部分拷贝

System.arraycopy(源数组名称,源数组开始点,目标数组名称(修改后的数组),目标数组开始点,拷贝长度)

3.数组全拷贝(重要

java.util.Arrays.copyOf(原数组名称,新数组长度) :int[] (返回一个新数组)

Java类集动态扩容就采用此方法。

猜你喜欢

转载自blog.csdn.net/ds19980228/article/details/83040690