注释并不会被执行,是给我们写代码的人看的
书写注释是一个非常良好的习惯
平时写代码一定要注意规范
public class HelloWorld { public static void main(String[] args) { //单行注释 //输出一个HelloWorld System.out.println("HelloWorld!"); /* 多行注释 可以注释一段文字 */ /** * JavaDoc:文档注释 * @Description HelloWorld * @Author WangZP */ } }
关键字
标识符的注意点
强类型语言
弱类型语言
Java的数据类型分为两大类
public class Demo01 { public static void main(String[] args) { //八大基本数据类型 //整数 byte num1 = 10; short num2 = 20; int num3 = 30; //最常用 long num4 = 40L; //Long类型要在数字后面加L //小数:浮点数 float num5 = 50.1F; //Float类型要在数字后面加F double num6 = 3.1415926; //字符 char name = 'A'; //字符串 //String 不是关键字,是类 //String namea = "June"; //布尔值:是非 boolean flag1 = true; boolean flag2 = false; } }
public class Demo02 { public static void main(String[] args) { // 整数拓展 进制 二进制0b 十进制 八进制0 十六进制0x int i = 10; int i2 = 010; //八进制 int i3 = 0x10; //十六进制 0-9 A-F System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("======================================================="); //======================================================= //浮点数拓展 //======================================================= //银行业务怎么表示?钱 // BigDecimal 数学工具类 银行业务使用这个类处理 //======================================================= //float:有限 离散 舍入误差 大约 接近但不等于 //double //最好完全使用浮点数进行比较 float f = 0.1f; //0.1 double d = 1.0/10; //0.1 System.out.println(f==d); //返回false System.out.println(f); System.out.println(d); float d1 = 2350123123121f; float d2 = d1 + 1; System.out.println(d1 == d2); //返回true //======================================================= //字符拓展 //======================================================= char c1 = 'A'; char c2 = '中'; System.out.println(c1); System.out.println((int)c1); //强制转换 System.out.println(c2); System.out.println((int)c2); //所有的字符本质还是数字 //编码 unicode编码 2字节 0 - 65536 char c3 = '\u0061'; System.out.println(c3); //======================================================= //转义字符 // \t 制表符 // \n 换行 //======================================================= System.out.println("Hello\tWorld"); System.out.println("======================================================="); String pa = new String("Hello World"); String pb = new String("Hello World"); System.out.println(pa == pb); String pc = "Hello World"; String pd = "Hello World"; System.out.println(pc == pd); //对象 从内存分析 //布尔值扩展 Boolean flag = true; if (flag == true){} //新手 if (flag){} //老手 两种写法都是一样的 //Less is More 代码要精简易读 } }
由于Java是强类型语言,所以要进行有些运算的时候,需要用到数据类型转换。
低----------------------------------->高 byte,short,char->int->long->float->double //小数的优先级一定大于整数
运算中,不同类型的数据先转换为同一类型,然后进行运算。
public class Demo03 { public static void main(String[] args) { int i = 128; byte b = (byte)i; //强制转换 超过范围会内存溢出 // 强制转换 (类型)变量名 高-->低 // 自动转换 低-->高 System.out.println(i); System.out.println(b); int j = 128; double d = j; System.out.println(j); System.out.println(d); /* 注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换的时候可能存在内存溢出,或精度问题 */ System.out.println("==============================="); System.out.println((int)23.7); System.out.println((int)-32.89f); System.out.println("==============================="); char c = 'a'; int f = c + 1; System.out.println(f); System.out.println((char)f); } }
变量是什么:可以变化的量
Java是一种强类型语言,每个变量都必须声明其类型
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}] //数据类型 变量名 =值 ;可以使用逗号隔开来声明多个同类型变量
public class Demo04 { public static void main(String[] args) { //操作比较大的数的时候,注意溢出问题 //JDK7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; int years = 20; int total1 = money * years; //-1474836480, 计算的时候溢出了 System.out.println(total1); long total2 = money * years; //-1474836480 默认是int,转换之前已经存在问题了 System.out.println(total2); long total3 = money*((long)years); System.out.println(total3); //L l 都表示long类型,书写的时候一般使用L } }
public class Demo06 { // 类变量 static static double salary = 18000; //属性:变量 //实例变量:从属于对象;如果不自行初始化,这个类型的默认值; // 数值的默认值 0 0.0; // 布尔值:默认是false // 除了基本类型,其余的默认值都是null String name; int age; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化 int i = 10; System.out.println(i); //变量类型 变量名字 = new Demo06(); Demo06 demo06 = new Demo06(); System.out.println(demo06.name); System.out.println(demo06.age); System.out.println(salary); } //其他方法 }
public class Demo07 { // 修饰符,不存在先后顺序 static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); } }
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名 = 值; final double PI = 3.14;
常量名一般使用大写字符。
Java语言支持如下运算符:
算术运算符:+ , - , * , / , % , ++ , --
package operator; public class Demo01 { public static void main(String[] args) { // 二元 运算符 // Ctrl+D 复制当前行到下一行 int a = 10; int b = 20; int c = 25; int d = 25; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println((double) a / b); } }
package operator; public class Demo02 { public static void main(String[] args) { long a = 167879321329L; int b = 123; short c = 10; byte d = 8; //有高级别的与低级别的做运算,输出类型为高级别的数据类型 System.out.println(a+b+c+d); //Long System.out.println(b+c+d); //Int System.out.println(c+d); //Int double e = 8989566266665654.0; float f = 130F; int g = 10; byte h = 5; System.out.println(e+f+g+h); //Double System.out.println(f+g+h); //Float System.out.println(g+h); //Int int i = 10; int j = 3; // 取余; 模运算 System.out.println(i%j); } }
package operator; public class Demo04 { public static void main(String[] args) { // ++ 自增,-- 自减 一元运算符 int a = 3; int b = a++; //执行完这行代码后,先给b赋值,再自增 // a++ a=a+1; System.out.println(a); // ++a a=a+1; int c = ++a; //执行这行代码前,先自增,然后给c赋值 System.out.println(a); System.out.println(b); System.out.println(c); System.out.println("======================"); int f = 6; // a-- a=a-1 int d = f--; System.out.println(f); int e = --f; System.out.println(d); System.out.println(e); System.out.println("======================"); //幂运算 很多运算,会使用一些工具类来操作 // Math 数学类,里面有许多数学计算方法 double pow = Math.pow(2,3); System.out.println(pow); } }
赋值运算符:=
关系运算符:> , < , >= ,<= , == , != , instanceof
package operator; public class Demo03 { public static void main(String[] args) { // 关系运算符返回结果: 正确 错误 布尔值 int a = 10; int b = 20; System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); } }
逻辑运算符:&& , || ,!
package operator; // 逻辑运算符 public class Demo05 { public static void main(String[] args) { // 与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:" +(a && b)); //逻辑与运算,两个变量都为真,结果才为true System.out.println("a || b:" +(a || b)); //逻辑或运算,只要其中一个为真,结果就为true System.out.println("!(a && b):" +!(a && b)); //如果为真则为假,如果是假则变成真 //短路运算 System.out.println("a && b:" +(b && a)); //逻辑与运算,两个变量都为真,结果才为true int c = 5; boolean d = ((c<4)&&(c++<4)); System.out.println(d); System.out.println(c); int e = 6; boolean f = (e>4)||(e++<5); System.out.println(e); System.out.println(f); } }
位运算符:& , | , ^ , ~ , >> , << , >>>
/* 位运算 A = 0011 1100 B = 0000 1101 ----------------------- A&B = 0000 1100 A/B = 0011 1101 A^B = 0011 0001 ~B = 1111 0010 2*8 = 16 2*2*2*2 效率极高!!! << *2 >> /2 */
条件运算符:? :(三目运算符)
package operator; // 三元运算符 public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x==true,则结果为y,否则为z int score = 90; String type = score<60 ? "不及格":"及格"; //必须掌握 System.out.println(type); } }
扩展赋值运算符:+= ,-= ,*= ,/=
package operator; public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20; a+=b; //a=a+b System.out.println(a); int c = 10; int d = 20; c-=d; //c=c-d; System.out.println(c); int e = 10; int f = 20; e*=f; System.out.println(e); int g = 20; int h = 10; g/=h; System.out.println(g); //字符串连接符 + //只要数字前面有字符串,字符串后加号后面的都按字符串拼接起来 int i = 10; int j = 20; System.out.println(""+i+j); System.out.println(i + j + ""); } }