public class hello { //输入psvm 输出一个main方法 public static void main(String[] args) { //输入sopt 打印字符串hello wroid System.out.print("hello wroid");//快捷命令sout }//快捷命令psvm }
//单行注释:只能注释一段文字 /* 多行注释: 可以注释一段文字 */ //文档注释:/** */
1、类名、变量名、方法名都被称为标识符
2、所有标识符只能以字母(A-Z或a-z)、美元符($)、或者下划线(_)开始
3、标识符是大小写敏感的
位(bit):计算机内部储存最小单位,11001100是一个八位二进制数。
字节(byte):计算机数据处理的基本单位,习惯上用大写B表示。
1B(byte) = 8bit(位)
字符:指计算机中使用的字母、数字、字和符号
1、强类型语言:
2、弱类型语言:
3、数据类型分为两类
基本类型(primitive type)
引用类型(reference type)
数据类型 变量名 = 值;可以用逗号隔开声明多个同类变量
//八大基本数据类型 //整数 int num1 = 10;//最常用 占4个字节范围:-9223372036854775808-9223372036854775807 byte num2 = 20;//占1个字节范围:-128-127 short num3 =30; long num4 = 30L;//Long类型要在数字后面加L //小数:浮点数 float num5 = 50.1F;//float类型要在数字后面加F double num6 = 3.1415926; //字符类型 char name = 'A'; //字符串,String不是关键词,是一个类 String namea = "十一点"; //布尔值:是非 boolean flag = true; //boolean flag = false;
整数拓展
public static void main(String[] args) { // 整数拓展 : 进制 二进制0b 八进制0 十进制 十六进制0x int i = 10; int i2 = 010;//八进制0 int i3 = 0x10;//十六进制0x System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("----------------------------------------------------"); //浮点数拓展 float f = 0.1f; //0.1 double d = 1.0/10;//0.1 System.out.println(f==d);//false float d1 = 2435342543543534534255f; float d2 = d1+1; System.out.println(d1==d2);//true //float 有限 离散 舍入误差 大约 接近但不等于 //double //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 //最好完全使用浮点数进行比较 System.out.println("----------------------------------------------------"); //字符拓展 char c1 = 'A'; char c2 = '中'; System.out.println(c1); System.out.println((int)c1);//强制类型转换 System.out.println(c2); System.out.println((int)c2);//强制类型转换 //所有的字符本质都是数字 //编码 Unicode 表:(97 = a 65 = A) 2字节 0-65536 //U0000 UFFFF char c3 = '\u0061'; System.out.println(c3); System.out.println("----------------------------------------------------"); //转义字符 // \t 制表符 // \n 换行 // .......等其他转义符 System.out.println("Hello\tWroid"); System.out.println("Hello\nWroid"); }
结果:
10 8 16 ---------------------------------------------------- false true ---------------------------------------------------- A 65 中 20013 a ---------------------------------------------------- Hello Wroid Hello Wroid 进程已结束,退出代码为 0
由于java是强类型语言,所以要进行有些运算的时候,需要用类型转换
低 -------------------------------------------------------------------------------------> 高
byte,short,char ---> int --->long ---> float --->double
运算中,不同类型的数据先转化为同一种类型,然后再运算
强制转换
自动转换
public static void main(String[] args) { int i = 128; byte b = (byte) i;//强制类型转换,内存溢出 double c = i;//自动类型转换 //强制类型转换 (类型)变量名 高------低 //自动类型转换 低-------高 System.out.println(i); System.out.println(b); System.out.println(c); /*注意点: 1.不能对布尔值进行转换 2.不能把对象类型转换为不相关的类型 3.在把高容量转换到低容量的时候,强制转换 4.转换过程中可能存在内存溢出,或者精度不准的问题 */ //精度不准问题 System.out.println("1、------------------------------------------------------"); System.out.println((int)67.5); System.out.println((int)10.4f); //内存溢出问题 System.out.println("2、------------------------------------------------------"); //操作比较大的数字时,要注意溢出问题 //jdk7新特性,数字之间可以用下划线分割 int money = 10_0000_0000; int years = 20; int total = money*years;//-1474836480,计算时溢出了 System.out.println(total); long total2 = money*years;//默认类型是int,转换前已经出现问题了 System.out.println(total2); long total3 = money*((long)years);//先把一个数转换成long System.out.println(total3); //字符与数字转换 System.out.println("3、------------------------------------------------------"); char d = 'a'; int e = d+1; System.out.println(e);//98 System.out.println((char)e);//b }
结果:
128 -128 128.0 1、------------------------------------------------------ 67 10 2、------------------------------------------------------ -1474836480 -1474836480 20000000000 3、------------------------------------------------------ 98 b 进程已结束,退出代码为 0
变量
变量就是可以变化的量
java中每个变量都必须声明其类型
java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域
数据类型 变量名 = 值;可以用逗号隔开声明多个同类变量
作用域
public class demo04 { ///类变量 static static double salary = 2500; //属性:变量 //实例变量:从属于对象;如果不自行初始化,这个类型的默认值 0 0.0 //布尔值:默认是false //除了基本类型,其余的默认值都是null String name; int age; //main方法 public static void main(String[] args) { //局部变量;必须声明和初始化值 int i = 10; System.out.println(i); //变量类型(可自定义) 变量名字 = new demo04(); demo04 demo04 = new demo04(); System.out.println(demo04.age); System.out.println(demo04.name); //类变量 System.out.println(salary); } //其他方法 /*public viod add(){ System.out.println(); }*/ }
常量
final 常量名 = 值; final double PI = 3.14
//修饰符,不存在先后顺序 static final double PI = 3.14; public static void main(String[] args) { System.out.println(PI); }
变量的命名规范
java支持的运算符: 优先级()
算术运算符:+、-、*、/、%、++、--
赋值运算符:=
关系运算符:>、<、<=、==、!=instanceof
逻辑运算符:&&、||、!
位运算符:&、|、^、~、>>、<<、>>>(了解!!!)
条件运算符:?、:
扩展赋值运算符:+=、-=、*=、/=
自增自减运算符、初识Math类
public class demo03 { public static void main(String[] args) { //++ -- 自增,自减 一元运算符 int a = 3; int b = a++;//执行完这行代码后,先给b赋值,再自增 //a = a + 1 System.out.println(a); //a = a + 1; int c = ++a;//执行完这行代码后,先自增,再给b赋值 System.out.println(a); System.out.println(b); System.out.println(c); //幂运算2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作 double pow = Math.pow(3,2); System.out.println(pow); } }
逻辑运算符:
public static void main(String[] args) { // 与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a && b:"+(b&&a));//与运算:两个变量都为真,结果才为true System.out.println("a || b: "+(b||a));//或运算:两个变量有一个为真,则结果为true System.out.println("!(a && b):"+!(b&&a));//如果是真,则变为假,如果是假则变为真 //短路运算 int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); }
位运算符:
public static void main(String[] args) { /* A = 1010 0110 B = 0100 1011 ---------------------------- A&B = 0000 0010 //相同为1 A|B = 1110 1111 //有1则1 A^B = 1110 1101 //相同为0 ~B = 1011 0100 //取反 2*8 = 16 2*2*2*2 效率极高 << *2 >> /2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<5); }
条件运算符:
//三元运算符 public static void main(String[] args) { //x ? y : z //如果x == true,则结果为y,否则结果为z int score = 60; String type = score<60?"不及格":"及格";//必须掌握 //if System.out.println(type); if(score< 60){ System.out.println("不及格"); } else { System.out.println("及格"); }
扩展赋值运算符:
public class demo06 { public static void main(String[] args) { int a = 10; int b = 20; a+=b; //a=a+b a-=b;//a=a-b System.out.println(a); //字符串连接符 + , string System.out.println(""+a+b); System.out.println(a+b+""); } }