Java基础语法
注释
-
平时我们写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构一旦复杂起来,我们就需要用到注释了。
-
注释并不会被执行,是给我们写代码的人看的。
-
书写注释是一个非常好的习惯*
-
平时写代码一定要注意规范*
-
可以自行搜索一些:有趣的代码注释
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MeWKyh9c-1615565197309)(C:\Users\Administrator.USER-20180928VL\Desktop\多行注释.png)]
-
Java中的注释有三种:
- 单行注释 //+注释内容
- 多行注释 /* +注释内容+ */
- 文档注释 /** +回车+注释内容+ */
IDEA设置
- File—settings—Editor—Color Scheme—Java
- Annotations----注解
- Comments----注释
- Block comment—区域注释or多行注释
- Line comment—单行注释
- JavaDoc—文档注释
- 更改颜色时请把Inherit values from勾选取消掉
- Bold—粗体 Italic—斜体
标识符与关键字
关键字
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EQxHtWE6-1615565197313)(C:\Users\Administrator.USER-20180928VL\Desktop\常用关键字.png)]
常用的关键字
- Java所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
标识符注意点
- 所有的标识符都应该以字母A-Z或者a-z,美元符$,或者下划线_开始
- 首字符之后可以是字母A-Z或者a-z,美元符$,下划线_或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。*
- 标识符是大小写敏感的。*
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc
- 可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
数据类型
强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用,强类型语言包括:Java、.net、Pytho、C++等语言*
弱类型语言
- 弱类型语言是一种弱类型定义的语言,某一个变量被定义类型,该变量可以根据环境变化自动进行转换,不需要经过显性强制转换。弱类型语言包括:vb 、PHP、javascript等语言
Java的数据类型分为两大类
- 基本类型(primitive type)
- 引用类型(reference type)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h24AIc3Q-1615565197315)(C:\Users\Administrator.USER-20180928VL\Desktop\数据类型.png)]
什么是字节
- 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示。
- 1B=8bit
- 字符:是指计算机中使用的字母、数字、字和符号。
- 1bit表示1位
- 1Byte表示一个字节 1B=8bit
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
- 1024G=1TB
数据类型扩展
整数扩展
-
二进制0b 八进制0 十六进制0x
-
int i = 10; //十进制 int i2 = 010; //八进制0 int i3 = 0x101; //十六进制0x
-
十六进制由数字0-9和字母A-F组成
浮点数扩展
-
float与double
-
浮点数能表现的字长是有限的,也是离散的
-
舍入时有误差,大约为xxx,接近但不等于
-
最好完全避免使用浮点数进行比较
-
float f = 0.1f;//输出值为0.1 double d = 1.0/10;//输出值为0.1 Sysstem.out.println(f==d);//输出结果为false float d1 = 2311312312312313f; float d2 = d1+1; Sysstem.out.println(d1==d2);//输出结果为true
-
BigDecimal 数学工具类 银行业务要用这个类来表示*
字符扩展
-
所有的字符本质还是数字
-
Unicode 编码可以处理各种语言、文字,占用2个字节,最多可以表示65536个字符
-
Unicode 编码以数字代表一个文字或字母,区间范围为U0000-UFFFF
-
Excel表格最多有2的16次方的表格,表格总数为65536
-
char c1 = 'a'; char c2 = '中'; Sysstem.out.println(c1); Sysstem.out.println((int)c1);//强制转换(查看Unicode编码) Sysstem.out.println(c2); Sysstem.out.println((int)c2);//强制转换 char c3 = '\u0061'; Sysstem.out.println(c3);//输出结果为a
转义字符扩展
- 常用的转义字符
- \t—水平制表符
- \n—回车
- \f—换页
- \r—换行
- \v—垂直制表符
- 等
关于对象扩展
-
从内存方面去分析false与true
-
String sa = new String("hello world"); String sb = new String("hello world"); System.out.println(sa == sb);//输出结果为false String sc = "hello world"; String sd = "hello world"; System.out.println(sc == sd);//输出结果为true
布尔值扩展
-
关于如何判断新手与老手
-
Less is More! 代码要精简易读
-
boolean flag = true; if (flag==true){}//新手 if (flag){}//老手
类型转换
-
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
-
运算中,不同类型的数据线转化为同一类型,然后再进行运算。
-
转换过程为从低到高来转换
低-------------------------------------------------------------高
byte,short,char—>int—>long—>float—>double
-
规则:按字节大小来排列,小数的优先级要大于整数
-
强制类型转换 (从高到低)
int i = 128; byte b = (byte)i;//输出值为-128,byte的最大值为127,转换时的内存溢出 //要避免内存溢出的情况* //强制转换 (类型)变量名 System.out.println(i); System.out.println(b);
-
自动类型转换 (从低到高)
int e = 128; double f = e;//输出值为128.0 System.out.println(e); System.out.println(f);
-
注意点!
-
不能对布尔值进行转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换为低容量的时候,使用强制转换
-
在把低容量转换为高容量的时候,使用自动转换
-
转换的时候可能存在内存溢出、或者精度问题!
//转换时的精度问题 System.out.println((int)23.7);//输出结果为23 System.out.println((int)-45.89f);//输出结果为-45
-
-
附加
char c = 'a' ; int d = c+1; System.out.println(d);//输出结果为98 System.out.println((char)d);//输出结果为b
-
附加2
//操作比较大的数的时候、注意溢出问题! //JDK7新特性,数字多的时候可以用下划线进行分割 int money = 10_0000_0000; int years = 20; int total = money*years;//输出值为-1474836480,计算的时候溢出了 long total2 = money*years;//输出值也为-1474836480,转换后无用 //原因是默认的money和years已经是int了,在转换为long之前已经出现问题了 long total3 = money*((long)years);//输出值正常,先把一个数值转换为long System.out.println(total); System.out.println(total2); System.out.println(total3); //尽量都用大写的L来表示long函数
变量、常量、作用域
变量
-
变量是什么:就是可以变化的量!
-
Java是一种强类型语言,每个变量都必须声明其类型。
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value] [{,varName[=value]}]; //数据类型 变量名 = 值;可以使用逗号隔开来声明多个同类型的变量。
-
注意事项
- 每个变量都有类型,类型科颜氏基本类型,也可以是引用类型。
- 变量名必须是合法的标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
-
例:
//int a,b,c; int a=1,b=2,c=3;//尽量分开来写int a=1;int b=2;int c=3; //不能让“程序可读性”变得很差 String name = "wuyue"; char x ='X'; double pi = 3.14;
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Variable{ static int allClicks=0; //类变量 String str="hello world"; //实例变量 public class method(){ int i = 0; //局部变量 } }
作用域应用
public class demo07 {
//类变量 static
static double salary = 2500;
//属性:变量
//实例变量:实在方法的外面,在类里面。是从属于对象的;
//如果不自行初始化,会输出这个类型的默认值:0 or 0.0 or u0000
//布尔值:默认是false;除了基本类型,其余类型的默认值都为null
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量;必须声明和初始化值,当前的局部变量只适用于当前的{}内
int i = 10 ;
System.out.println(i);
//变量类型;变量类型也可以是我们自己,自己写的,自定义类型
//变量类型 变量名字 = new demo07()
demo07 demo07 = new demo07();
System.out.println(demo07.age);
System.out.println(demo07.name);
//类变量 static
System.out.println(salary);
}
//其他方法 add方法
public void add(){
}
}
常量
-
常量(Constant):初始化(initialize)后不能在改变值!不会变动的值。
-
常量可以理解成一种特殊的变量,他的值被设定后,在程序运行过程中不被允许改变。
final 常量名=值; final double PI=3.14
-
常量名一般使用大写字符。
常量应用
public class demo08 {
//final为修饰符,不存在先后顺序。通过final来定义常量。
static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
- 所以变量、方法、类名:见名知意*
- 类成员变量:首字母小写和驼峰原则:monthSalary(月工资)除了第一个单词以外,后面的单词首字母要大写!例:lastName
- 局部变量:首字母小写和驼峰原则
- 常量:全部使用大写字母可以加下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()