api 就是类库,api文档就是说明书

基本数据类型

byte,short,int,long,float,double,boolean,char
引用类型
class,interface,array


整型:

  • byte(1字节=8bit)
  • short(2字节)
  • int(4字节) 通常使用
  • long(8字节) 使用后面加L l

    浮点:

  • float(4字节) 后面加F f;

  • double (8字节) 通常使用

    字符:

  • char(1字符=2字节) 声明定义’ ‘单引号 中英文都可以,语言不受限制,只能一个,转义字符 Unicode值表示字符常量

    布尔型

  • boolean:(true false)


自动类型装换 低转高

byte . short .char > int > long >float > double
前三者的运算结果都为int型

强制类型转换 高转低

() 强转符 ; 例如 int x = (int) 2.2 ;


进制

  • 二进制 : 01 ; ob,oB开头
  • 十进制 : 0-9
  • 八进制 : 0-7 ; 0开头
  • 十六进制 : 0-9,A-F ; 0x 0X开头

运算符(注意+=和+1)

  1. <br />a=a+1 会改变他的类型<br />short x = 1 ;<br />x = x + 1 ;(编译不通过,此时x+1已变成int类型了,不能直接转为short) 要强转x = (short) (x + 1);

a+=1(这样的话不会改变变量的数据类型)
short x = 1 ;
x += 1 ;这样编译通过了

如果你x += 1 ; 你写成了x = +1 ; 后者表示赋值 x 为 1 ;

逻辑运算符

a b a&b a&&b a|b a||b !a a^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false

&逻辑与 &A我请假& 短路与 结果一样&&前面为false后面就不会看了
| 逻辑或 || 短路或 ||和前面为true后面就不会看了
! 逻辑非
^ 逻辑异或 结果相同false,不相同true


位运算符

  • << 左移 前面移除后面加0 每移一位*2
  • 右移 后面移除 前面0就写0,1就写1 没移一位/2

  • 无符号右移 空位补0

  • & 二进制&运算 1&1时结果为1,否者时0
  • | 二进制| 运算 0|0结果0,否者时1
  • ^ 相同二进制为0,其他为1
  • ~ 正数和负数取反,各二进制补码各位取反

三元运算符

  1. 条件判断? true执行 : false执行 ;

键盘输入

Scanner scan = new Scanner(System.in);

else就近原则

while(true) for(; ;) 死循环 ,使用break跳出
lable:for(;;) 可以使用break lable跳出最外层循环


数组创建:

  • int [] arr1=new int [1];
  • int [] arr2 =new int[] { 123,456};
  • int [] arr3={123,456};

二维数组的创建:

  • int [][] arr1 = new int[][]{ {1,2,3} , {4,5,6} , {7,8,9} };
  • int [][] arr2= new int[1][2];
  • int[][] arr3= new int[3][];
  • int [] arr4 []= new int[][]{{1,2,3}{4,5,6},{7,8,9}};
  • int [] arr5 []={{1,2,3}{4,5,6},{7,8,9}};

数组初始化长度已经确定;

byte,short,int,long类型定义的数组,初始化默认是0
float、double类型定义的数组,默认值是0.0
String类型定义的数组,默认值是null
char类型定义的数组,默认值是‘0’(’\u0000’)
boolean类型定义的数组,默认值是false


方法重载:

同一个类,同名的方法,参数列表,参数个数和类型不一样即可,
与权限修饰符,返回值类型,形参类型,形参变量名,方法体没关系.


可变个数的形参

(String…strs)
前面为类型,后面变量名.可以0-n个参数
调用时候直接传就行
确定了参数,会调用确定参数的
public static void main(String[] args) {
Demo d = new Demo();
d.show(“1”,”2”,”3”);

}
public void show(String…str) {

}

可变形参必须写在末尾,方法形参中只能有一个形参.

以前写法(String[] str) 他们不构成重载; 直接传数组就行


java的参数传递机制:值传递

如果参数是基本数据类型,实参传给形参的是真实存储的数据值,
如果参数是引用数据类型,实参传给形参的是实参存储的的地址值.
变量是基本数据类型,赋值的是变量保存的的数据值
变量是引用数据类型,赋值的是变量保存的数据地址值