1 Java基础语法
Java关键字
变量
定义变量的格式:数据类型 变量名 = 初始化值
数据类型
两大类
(后面会详细讲)
2 Java数据类型
注意:
字符。char, 单个字符,用单引号。
字符串,String, 多个字符,用双引号,引用类型,可以用null 初始化。String 是引用类型,他的值是不可变的。如图例子:
String s0 = "hello"
String s1 = "hello"
这种的,不会在内存中存在两个"hello",只存在1一个"hello"
假设"hello"的内存地址xxxxx,声明s0变量时给s0赋值"hello"实际上让s0变量引用"hello"的内存地址xxxxx;当我们再声明变量s1也赋值"hello"的时候实际上也是直接把已经存在的"hello"的内存地址给s1引用
可以用下面这个图理解
数据类型的转换
实例1
String str1 = 4; //判断对错:错 需要加上双引号
String str2 = 3.5f + “”; //判断str2对错:对
System.out.println(str2); //输出:3.5
System.out .println(3+4+“Hello!”); //输出:7Hello!
System.out.println(“Hello!”+3+4); //输出:Hello!34
System.out.println(‘a’+1+“Hello!”); //输出:98Hello!
System.out.println(“Hello!”+‘a’+1); //输出:Hello!a1
-
byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。
-
有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。
-
当把任何基本类型的值和字符串值进行连接运算时(+),基本类型的值将自动转化为字符串类型。
强制类型转换:eg:(int)i ,用括号
3 各种运算
i++和++i的区别(算数):
加减乘除不啰嗦介绍了
++i 自增(前):先运算后取值; i++ 自增(后):先取值后运算
i=2; a=++i; // i = 3 ,a = 3
i=2; a=i++; // i =3 , a = 2, 先把i赋给a, 在运算i , i = 3
Java没有幂运算,Math.pow(x,a),因为Java是面向对象语言,所以方法在对象里面。调用方法。
逻辑运算符
短路与&&和&的区别(逻辑)
&时,左边无论真假,右边都进行运算;
短路&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
实例1
int x = 1,y = 1;
if(x++==1 || ++y==1)
{
x =7;
}
System.out.println("x="+x+",y="+y); //7 1
实例2(详解)
public class Test
{
public static void main(String[] args)
{
//
int x = 1, y = 1;
if(x++==2 && ++y==2)
{
x =7; //x++ 是先取值,x++ = 1, 1 !=2, 所以x++ = 2 为False,再计算++ 的值,x = 2
//++y 是先计算,y=2, 所以++y = 2 为True , 但是这步不会被执行,因为是短路与!!!!
}
System.out.println("x="+x+",y="+y); //x = 2 y =1
}
}
三目运算符(?)
(x== 5)?0:5 //x 如果是5, 则输出0, 否则输出为5
位运算(有公式)
&,|,^, ~不啰嗦介绍
公式:
m>>n 结果为m* (2n)
m<<n 结果为m* (2-n)
>> //右移
<< //左移
>>> //无符号右移
实例1
20>>3 // 20*(2**(-3))
3<<5 // 3*(2**5)
每天学习,天天进步一点点!