java是强类型语言
基本数据类型
四类
整数型
byte 2的8次方(256)-127-128 内存中占1个字节
short 2的16次方 内存中占2个字节
int 2的32次方 内存中占4个字节
long 2的64次方 内存中占8个字节
浮点型
float----有效数字7位(单精度浮点型) 内存中占4个字节
double----有效数字是16位(双精度) 内存中占8个字节
布尔型
boolean(只有两个值, true, false) 内存中占1个字节
字符型
char(单引号) 内存中占2个字节
java引用类型(对象):--可以=null
所有的类
所有的接口
所有的数组
字符串
String(双引号)
变量的赋值
char c = 'a';
char c = '字';
char c = 98; // ASII a
char c = '
';
char c = 'u0061'; unicode
定义一个整型变量默认为
long l = 123456;
long l = 88888888888L;
定义一个浮点型变量默认为double
float f = 12.345;
类型转换:
double float long int (char short byte)
char short byte进行运算的时候, 取值默认为int
隐式转换(低->高), 显式转换(高->低)
运算符:
算术运算符:+ - * / % ++ --
关系运算符:> < >= <= == !=
逻辑运算符:! & && | || ^(异或运算符)
&:....
false&&true/false:...(短路运算符)
位运算符:>> << >>>(无符号右移)
5-->101
0000 0101
0001 0100
5<<2
-5>>>2
00000100
11111011
00111110
5, 3
5-->101
3-->011
x->>110--6
赋值运算符:= += -= *= /= %=
3+5+"a"--->35a
字符串连接运算符:+(整个表达式中只要有一个是字符串, 那整个结果都是字符串)
需要注意的地方: 在输出的时候, 只要有一个参数是字符串, 整个输出结果都是字符串
三元运算符(表达式)(三目运算符):布尔值?值1:值2
int a=5;
int b=3;
a < b && ++b ? "1" : "2"
++b:先自增再赋值
b++:先赋值再自增
System.out.println(b);
分支循环:
if...
if...else...
if...else if...
if...else if...else...
switch...case...default(可以省略, 思考一个问题: 既然有了if, 为什么还要有switch...)
switch只能使用在判断int型或者String类型的变量上,
for循环
for(int i=0;i<5;i++) {
...
}
foreach循环
String[] str = ...
for(String s : str) {
...
}
break;
终止循环
continue;
退出本次循环, 继续下次循环
String处理:
String str = "..............";
str.length();// 获取整个字符串的长度
str.trim();// 去掉字符串两边的空格
str.charAt(int i);// 获取某个索引值上的字符
str.contains(CharSequence s);// 是否包含某个字符串
str.startWith(String s);
str.endWith(String s);
replace(char o, char n);
replace(CharSequence o, CharSequence n);
split(String s);
toUpperCase();
toLowerCase();
valueOf(any args);
str.indexOf(String s);//取这个字符串第一次出现的索引位置
str.lastIndexOf(String s);//取这个字符串最后一次出现的索引位置
str.substring(int i);//取索引值为这个整数参数后面的字符串
str.substring(int a, int b);//取a和b之间的字符串(不包括b)