1、注释、标识符、关键字
1.1注释,并不会被执行
- 单行注释,双斜杠//
- 多行注释,/**/
- 文档注释,/**然后点回车就出来了,这种有功能
1.2标识符:Java所有的组成部分都需要名字、类名、变量名以及方法名都被称为标识符
注意:
- 所有标识符第一个字符都应以字母(A-Z或者a-z)、美元符($)、或者下划线(_)开始
- 首字符之后可以是任意的
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
2、数据类型
强类型语言:所有变量必须先要定义后才能使用
弱类型语言
2.1Java的数据类型分为两类
- 基本类型
1.数值类型
整数类型:
- byte:1个字符位:-128~127
- short:2:-32768~32767
- int:4:正负21亿
- long:8
浮点类型:
- float:4
- double:8
字符类型:char
2.boolean类型: true & false
public class Demo01 {
public static void main(String[] args) {
//八大基本数据类型
//整数
int num1 = 10; //最常用
byte num2 = 20;
short num3 = 30;
long num4 = 30L;//long类型要在数字后面加个L
//浮点数,小数
float num5 = 50.1F; //float类要在后面加个F
double num6 = 3.1415926535;
//字符
char name = 'o'; //占2个字节,只能写一个字符,包括字母汉字符号
//布尔值
boolean flag = true; //true or false
}
}
字节
- 位(bit):计算机内部存储最小单位
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示
- 1B(byte字节) = 8bit (位)
- 字符:计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
public class Demo03 { public static void main(String[] args) { //整数拓展 进制 二进制 十进制 八进制 十六禁止 int i = 10; int i2 = 010;//八进制0 int i3 = 0x10;//十六进制0x 0~9 A~F System.out.println(i); System.out.println(i2); System.out.println(i3); System.out.println("==================================================================="); //=========================================================================================== //浮点数拓展? 银行业务怎么表示?钱 //BIgDecimal 数学工具类 //最好完全避免使用浮点数进行比较 float f = 0.1f; double d = 1.0/10; double c=2; double w= 10/3; System.out.println(f==d); System.out.println(w); //========================================================================================== //字符拓展 //========================================================================================== char c1 ='a'; char c2 ='中'; System.out.println(c1); System.out.println((int) c1); System.out.println(c2); System.out.println((int)c2); //所有的字符本质上还是数字 //转义字符 Unicode表 \t \n \ //========================================================================================= //布尔值拓展 } }
3、类型转换
运算中不同类型的数据先转换为同一类型,然后进行运算
byte, short, char, int, long, float, double
public class Demo02 {
public static void main(String[] args) {
int i =666;
byte b =(byte)i;//内存溢出
System.out.println(b);
System.out.println(250);
//强制转换(类型)变量者 高----低
//自动转换 低----高
/*
* 注意点:
* 不能对布尔值进行转换
* 不能把对象类型转换为不相干类型
* 把高容量转换为低容量的时候,强制转换
* 转换的时候可能出现内存溢出,或者精度问题*/
//===========================================================================================
//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割
int money = 10_0000_0000;
int years =20;
int total1 =money*years;//计算时候溢出了
long total2 =money*years;//默认是int转换之前已经出现问题了,两个是同一类型
long total3 =money*((long)years);
System.out.println(total3);
}
}
4、变量、常量
4.1JAVA变量是程序中最基本的储存单元,其要素包括变量名、变量类型和作用域。
public class Demo04 {
public static void main(String[] args) {
/*int a,b,c;*/
/*int a=1,b=2,c=3;*/
/*程序可读性*/
int a=1;
int b=2;
int c=3;
String name ="xiaoyu";
char x='X';
double pi=3.14;
}
}
变量作用域
- 类变量, static
- 实例变量
- 局部变量
public class Demo05 { //类变量 static static double salary =2500; //属性:变量 //实例变量从属于对象,类。如果不进行初始化,数字的默认值是0 //布尔值,默认值是false //除了基本类型(8大类),其余的默认值都是null //main方法 int age; public static void main(String[] args) { //局部变量,必须声明和初始化值 int i =10; System.out.println(i); //变量类型、变量名字=new Demo08 Demo05 demo05 =new Demo05(); Demo04 demo04 =new Demo04(); int add = demo05.add(900, 200); System.out.println(add); System.out.println(demo05.age); //类变量 static System.out.println(salary); } //其他方法 public int add(int a,int b){ int num=a+b; return num; } }
4.2常量:constant,它的值被设定后,在程序运行过程中不允许改变
-
final 常量值=值;
-
final double PI =3,14,常量名一般用大写字符
public class Demo06 { //static,final修饰符,不存在先后顺序 static final double PI =3.14; public static void main(String[] args) { System.out.println(PI); } }
变量的命名规范:所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线
- 类名:首字母大写和驼峰原则:Man, GoodMan
- 方法名:首字母小写和驼峰原则:run(), runRun()
5、运算符
- 算数运算符:+,-,*,/,%,++,--
package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 int a =10; int b =20; int c =30; int d =40; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b); } }
package operator; public class Demo03 { public static void main(String[] args) { //关系运算返回的结果:正确,错误 布尔值 int a=10; int b=20; int c=21; System.out.println(c%a);//取余数,模运算c除a商几余几, System.out.println(a>b); System.out.println(a<b); System.out.println(a==b); System.out.println(a!=b); } }
自增自减
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); System.out.println(b); //++a代表 a=a+1 int c=++a;//执行完这行代码前,先自增,再给c赋值 System.out.println(a); System.out.println(b); System.out.println(c); //幂运算2^3=2*2*2=8,很多运算使用工具类来操作 double pow = Math.pow(2, 3); int i = Math.addExact(2, 3); System.out.println(i); } }
- 赋值运算符:=
-
package operator; public class Demo02 { public static void main(String[] args) { long a=18374994991L; int b=1234; short c=100; byte d=1; System.out.println(a+b+c+d);//Long类型,意思是多个运算如果有一个是long,结果为long,double也是 System.out.println(b+c+d);//int System.out.println(c+d);//int } }
- 关系运算符:>,<,>=,<=,==,!=(不等于),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));//如果是真则为假,假则为真 //短路运算 int c=5; boolean d=(c<4)&&(c++<4);//c<4已经是false了,后面就不执行了 System.out.println(d); System.out.println(c); } }
- 位运算符:&,|,^,~,>>,<<,>>>(了解)
package operator; public class Domo06 { public static void main(String[] args) { /* * A=0011 1100 * B=0000 1101 * ----------------------------------------------------------------------------------- * A&B 0000 1100 与 * A|B 0011 1101 或 * A^B 0011 0001 如果两个位置相同则为0,否则为1 * ~B 1111 0011 取反 */ //2乘以8怎么运算最快 2*8=2*2*2*2=16 /*<<左移 *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<<3); } }
- 条件运算符? :
package operator; //三元运算符 public class Demo08 { public static void main(String[] args) { //x ? y: z // 如果x==true,则结果为y,否则结果为z int score =50; String type= score <60 ?"不及格":"及格";//必须掌握 //if 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 a-=b;//a=a-b System.out.println(a); //字符串连接符 +,String 如果字符串在前面会进行拼接,在后面会直接进行运算 System.out.println(a+b); System.out.println(""+a+b); System.out.println(a+b+""); } }
6、包机制、JavaDoc
6.1包的本质就是文件夹,一般利用公司域名倒置作为包名
定义包package
导入包 import package1[.package2...].(classname|*);
6.2
- @author作者名
- @version版本号
- @since指明需要最早使用的JDK版本
- @param参数值
- @return返回值情况
- @throws异常抛出情况
package operator; /** * @author Sherry * @version 1.0 * @since 1.8 * */ public class Demo09 { String name; /** * * @param name * @return * @throws Exception */ public String test(String name) throws Exception{ return name; } }