api 就是类库,api文档就是说明书
基本数据类型
byte,short,int,long,float,double,boolean,char
引用类型
class,interface,array
整型:
- byte(1字节=8bit)
- short(2字节)
- int(4字节) 通常使用
-
浮点:
float(4字节) 后面加F f;
-
字符:
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)
<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
- ~ 正数和负数取反,各二进制补码各位取反
三元运算符
条件判断? 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的参数传递机制:值传递
如果参数是基本数据类型,实参传给形参的是真实存储的数据值,
如果参数是引用数据类型,实参传给形参的是实参存储的的地址值.
变量是基本数据类型,赋值的是变量保存的的数据值
变量是引用数据类型,赋值的是变量保存的数据地址值