01 注释
注:书写注释是一个非常好的习惯
分类:
-
单行注释://
-
多行注释:
/* 111 */
-
文档注释:
/** *@1 */
02 标识符和关键字
标识符
:Java所有组成部分都需要名字。类名、变量名以及方法名都被成为标识符。
标识符注意点:
- 所有标识符以字母,美元符号$,下划线_开始;
- 首字符之后以字符,美元符号$,下划线_,数字的任何字符租成;
- 不能使用关键字作为变量名或方法名;
- 标识符是大小写敏感的;
- 可以使用中文命名,但一般不建议这样使用,也不建议使用拼音,low;
关键字
03 数据类型
强类型语言
:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用;(Java)
弱类型语言
:
Java数据类型分类:
//八大数据类型
//整数
byte num2=20;
short num3=30;
int num1=10; //最常用
long num4=440L;//long类型要在数字后面加个L
//小数
float num5=3.162F;//float类型要在数字后面加个F
double num6=3.141596;
//字符类型
char num7='1';//字符类型里只能由一个字符
//字符串不是关键字 ,是类
//String number ="字母";
//布尔值:是非
boolean flag=true;
boolean flag1=false;
04 数据类型拓展
public class Demo2 {
public static void main(String[] args) {
//01整数拓展:进制 二进制0b 十进制 八进制0 十六进制0x
int i=10;
int i2=010;
int i3=0x10;//十六进制0x 0~9 A~F
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
//输出结果 10、8、16
System.out.println("=====================================================");
//========================================================================
//02浮点数拓展: 银行业务怎么表示? BigDecimal大数类型 数学工具类
//float 有限 舍入误差 大约接近但不等于
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f=0.1f;
double f2=1.0/10;
System.out.println(f==f2);//==表示判断前后者是否相同(true or false) false
System.out.println(f); //0.1
System.out.println(f2); //0.1
float d1=23232323232323f;
float d2=d1+1;
System.out.println(d1==d2); //true
System.out.println("=====================================================");
//========================================================================
//03字符拓展:
char c1='s';
char c2='中';
System.out.println(c1);
System.out.println(c2);
System.out.println((int)c1);//强制转换 115
System.out.println((int)c2);//强制转换 20013
//所有的字符本质还是数字
//编码 Unicode表(c1=115) 2字节 0-65536
// U0000-UFFFF
char c3='\u0115';
System.out.println(c3);
System.out.println("=====================================================");
//========================================================================
//04转义字符
// \t制表符; \n 换行 ...
System.out.println("hello\nworld");
System.out.println("=====================================================");
//========================================================================
//05布尔值拓展
boolean flag=true;
//两种写法 判断
if (flag==ture){}
if (flag){}
//if (flag==ture){}= if (flag){};
//if (flag){}默认等于true
}
}
05类型转换
由于Java是强类型语言,所以进行有些运算时,需要用到类型转换
低--------------------------------------------------------------------->高
byte,short,char—> int —>long —> float —>double
强制类型转换:高—>低:(类型)变量名
自动类型转换:低—>高
注意点:
-
不能对布尔值进行转换;
-
不能把对象类型转换为不相干的类型;
-
在高容量转换为低容量时需要强制转换;
-
转换时可能会存在内存溢出或精度问题;
public class Demo3 { public static void main(String[] args) { char c='a'; int d=c+1; System.out.println(d); //98 输出int类型 // 强制转换 (类型)变量名 System.out.println((char)d); //b 输出char类型 System.out.println("==========================================================="); int a=10; double b=a; // 自动类型转换 System.out.println(b); System.out.println("==========================================================="); //内存溢出(操作比较大的数字时,注意溢出问题) //JDK7新特性,数字之间可以用下划线进行分割 int money=10_0000_0000; int years=20; int total=money*years;//-1474836480,计算时内存溢出 long total2=money*years;//默认是int,转换之前已存在问题 long total3=money*((long)years); //先把一个数转换为long, System.out.println(total3); System.out.println("==========================================================="); //精度问题 System.out.println((int)42.71);//42 } }
06变量、常量、作用域
变量
变量介绍
- 变量:可以变化的量
- Java是一种强类型语言,每个变量都必须声明其类型;
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域;
- 数据类型 变量名=值;
注:
- 每个变量都有类型,可以是基本类型或引用类型;
- 变量名必须是合法的标识符;
- 变量声明是一条完整语句,因此每一个声明都必须以分号结束;
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Demo4 { //实例变量:(从属于对象) //如果不进行初始化赋值,数值类型默认值为0,布尔值默认值为false,引用类型默认值为null; String name; int age; //--------------------------------------------------------------------------- //类变量:static(从属于类) static double salary=2500; //main方法 public static void main(String[] args) { //局部变量:必须声明和初始化值(在方法内,从属于对应的方法,只在此方法内使用有效) int a=10; System.out.println(a); //实例变量:变量类型 变量名字=自己(把自己拿到) Demo4 Demo4=new Demo4(); System.out.println(Demo4.age); //类变量:static System.out.println(salary); } //其他方法 public void add(){ } }
变量命名规范
- 所有变量、方法、类名:见名知意
- 类变量、局部变量:首字母小写和驼峰原则:monthSalary
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(); runRun()
常量
-
常量(constant):初始化后不能改变;
-
可理解为特殊的变量;
-
常量名一般使用大写字符;
-
常量:final 常量名=值
public class Demo5 {
//修饰符不存在先后顺序:static,final
//常量:final 常量名=值
static final double PI=3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
07基本运算符
- 赋值运算符:a=10(把10赋值给a)
- 关系运算符:==等于
- 逻辑运算符:与,或,非
算数运算符
+,-,*,/,%(取余)
package com.wang.www.base;
public class Demo6 {
public static void main(String[] args) {
//同一类型变量算数运算
int a=10;
int b=20;
int c=31;
int d=40;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(c/a);
System.out.println(c%a);
System.out.println("==========================================================");
//不同类型变量算数运算
long e=123456789l;
int f=123;
short g=10;
byte h=8;
System.out.println(e+f+g+h);//long 自动类型转换
System.out.println(f+g+h);//int 自动类型转换
System.out.println(g+h);//int 自动类型转换
}
}
自增自减运算符
++,–
package com.wang.www.base;
public class Demo7 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
int a=3;
int b=a++; //执行完这行代码后,先给b赋值(b=a),再自增(++)
//a=a+1;
System.out.println(b);
System.out.println(a);
int c=4;
//c=c+1
int d=++c;//执行这行代码前,先自增(++),再赋值给d
System.out.println(c);
System.out.println(d);
System.out.println("===========================================================");
//幂运算 2^3 2*2*2=8 很多运算,我们使用一些工具来操作
double pow=Math.pow(3,2);
System.out.println(pow);
}
}
关系运算符
包括>、<、>=、<=、!=、==
package com.wang.www.base;
public class Demo8 {
public static void main(String[] args) {
//关系运算符返回的结果:正确&错误(布尔值)
int a=10;
int b=20;
int c=20;
System.out.println(a>b);
System.out.println(a<b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
逻辑运算符
&&、||、!
package com.wang.www.base;
public class Demo9 {
public static void main(String[] args) {
//逻辑元素符 与(and)&& 或(or)|| 非(取反)!
boolean a=true;
boolean b=false;
System.out.println("a&&b:"+(a&&b));//两个变量都为真,才为真;
System.out.println("a||b:"+(a||b));//其中一个变量为真,即为真;
System.out.println("!(a&&b):"+!(a&&b));//取反
System.out.println("=============================================================");
//短路运算
int c=5;
boolean d=(c<5)&&(c++<4);
System.out.println(c);
System.out.println(d);//c=5,d=false;
//判断第一个为假,即为假,不会进行c++运算
}
}
位运算符
&、|、^、~、>>、<<
效率高(和二进制打交道)
package com.wang.www.base;
public class Demo10 {
public static void main(String[] args) {
/*
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
0000 0000 0
0000 0001 1
0000 0010 2 -
0000 0011 3
0000 0100 4 -
0000 0101 5
0000 0110 6
0000 0111 7
0000 1000 8 -
0001 0000 16 -
*/
System.out.println(2<<3); //2左移三位 =16
}
}
条件运算符
? :
package com.wang.www.base;
public class Demo11 {
public static void main(String[] args) {
// 三元运算符
//x?y:z
//如果x==true,则结果为y,否则结果为z
int score=80;
System.out.println((score>60)?"及格":"不及格");
}
}
扩展赋值运算符
package com.wang.www.base;
public class Demo12 {
public static void main(String[] args) {
int a=10;
int b=20;
a+=b;//a=a+b
System.out.println(a);//30
a-=b;//a=a-b
System.out.println(a); //10
}
}
08包机制
包:文件夹
包语句的句法格式为:
package pk1;
- 一般使用公司域名倒置作为包名:com.valeria.blog
导入包的句法格式:
import package1;
09JavaDoc生成文档
- javadoc命令是用来生成自己的API文档的
- 参数信息
- @author 作者名
- @version版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况