Java的基础知识,包括有①注释、标识符&关键字;②数据类型;③类型转换;④变量、常量;⑤运算符;⑥包机制、JavaDoc。还有一些比较细的知识点,温故而知新,面试的时候可能会问到。基础得扎实!
1、注释、标识符&关键字
1.1注释
平时写代码,如果代码量少的时候,还是可以看懂的,但是当项目结构一旦复杂起来,就需要用到注释了。和其他语言一样,注释并不会被执行。写注释可是一个好习惯,提高代码的可读性和移植性。
注释有三种
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!");
} }
|
1.2标识符&关键字
Java所有组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
  下图是Java里全部的关键字,在起名字的时候,不能以他们来命名
注意点:
- 所有的标识符都应该以字母,美元符,或者下划线开头
- 首字符之后可以是任意字符组合
- 标识符是大小写敏感的
2、数据类型
- 强类型语言
- 要求变量的使用要严格符合规定,所有变量都必须先定义以后才能使用,不像python
- Java的数据类型
- 基本类型(primitive type)
- 引用类型(reference type)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
int num1 = 10; byte num2 = 26; short num3 = 30; long num4 = 30L;
float num5 = 11F; double num6 = 3.141526;
char name = 'A'; String b = "num";
boolean flag = true;
|
浮点数拓展
思考一个问题,银行业务里的钱是用哪个类型处理的?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Demo03 { public static void main(String[] args) { float f = 0.1f; double d = 1.0/10; System.out.println(f); System.out.println(d); System.out.println(f==d);
float d1 = 23256654411132f; float d2 = d1 + 1; System.out.println(d2==d1); } }
|
 运行以上的程序,发现很奇怪的事:0.1竟然不等于0.1,存进去的一块钱莫名其妙消失了?!
 原因是float是有限位数据,离散的数据,是大约值,接近但不等于。到后面数据越大,后面的位数就存不进去了。所以最好避免使用浮点数进行比较大小。那回到问题上来,银行使用哪种呢?答案是BigDecimal,这是一个数学工具类。BigDecimal_百度百科 (baidu.com)
字符拓展
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| public class Demo03 { public static void main(String[] args) { char c1 = 'a'; char c2 = '躺'; System.out.println(c1); System.out.println((int)c1);
System.out.println(c2); System.out.println((int)c2); System.out.println("===================================="); String sa = new String("Hello World"); String sb = new String("Hello World"); System.out.println(sa==sb);
String sc =("Hello World"); String sd =("Hello World"); System.out.println(sd==sc); } }
|
所有的字符本质还是数字
布尔值拓展
1 2 3 4
| boolean flag = true; if (flag) {} if (flag==true){}
|
3、类型转换
由于Java是强类型语言,所以有些运算要进行类型转换
低————————————————————>高
byte, short, char -> int -> long -> float -> double
不擅长,int来反蹲
运算中,不同类型的数据先转换为同一类,然后进行运算
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class Demo04 { public static void main(String[] args) { int i = 128; byte b = (byte)i; double a = i;
System.out.println(i); System.out.println(b); System.out.println(a);
System.out.println("===================================="); System.out.println((int)23.7); System.out.println((int)-23.33f);
System.out.println("===================================="); char c = 'a'; int d = c + 1; System.out.println(d); System.out.println((char)d); } }
|
注意:
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出、精度问题
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class Demo05 { public static void main(String[] args) { int money = 10_0000_0000; int years = 20; int total = money * years; long total2 = money * years; long total3 = money * ((long)years); System.out.println(total); System.out.println(total2); System.out.println(total3); } }
|
4、变量、常量
4.1变量
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和变量作用域
1 2
| type varName [=value] [{,varName[]=value}];
|
变量作用域
1 2 3 4 5 6 7 8
| public class Variable{ static int allClicks=0; String str = "hello world" public void method(){ int i = 0; } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| public class Demo07 {
static double salary = 2500;
String name; int age;
public static void main(String[] args) {
int i = 1; System.out.println(i);
Demo07 demo07 = new Demo07(); System.out.println(demo07.age); System.out.println(demo07.name);
System.out.println(salary); } public void add(){
} }
|
变量命名规范:
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则 monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线 MAX_VALUE
- 类名:首字母大写和驼峰原则 GoodMan
- 方法名:首字母小写和驼峰原则 runMan()
注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束
4.2常量
初始化以后不能再改变值。所谓常量可以理解是一种特殊的变量,它的值被设定后,在程序运行过程中不允许被更改。
1 2
| final 常量名=值; final double PI=3.14;
|
1 2 3 4 5 6 7 8 9
| public class Demo08 {
static final double PI = 3.14;
public static void main(String[] args) { System.out.println(PI); } }
|
5、运算符
Java语言支持如下运算符:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class Demo02 { public static void main(String[] args) { long a = 123123123123123123L; int b = 123; short c = 10; byte d = 8; double f = 10;
System.out.println(a+b+c+d); System.out.println(b+c+d); System.out.println(c+d); System.out.println(a+b+c+d+f); } }
|
- 赋值运算符:=
- 关系运算符:>,<,>=,<=,==,!=,instanceof
- 逻辑运算符:&&,||,!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Demo05 { public static void main(String[] args) { boolean a = true; boolean b = false;
System.out.println(a && b); System.out.println(a || b); System.out.println(!(a && b));
int c = 5; boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| public class Demo06 { public static void main(String[] args) {
System.out.println(2<<3); } }
|
1 2 3 4 5 6 7 8 9 10 11
| public class Demo08 { public static void main(String[] args) {
int score = 80; String type = score<60 ? "不及格" : "及格";
System.out.println(type); } }
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| public class Demo07 { public static void main(String[] args) { int a = 10; int b = 20;
a+=b; a-=b;
System.out.println(a);
System.out.println(""+a+b); System.out.println(a+b+""); } }
|
重点理解一下++,–
前缀自增自减法(++a,--a) | 先进行自增或者自减运算,再进行表达式运算。 |
后缀自增自减法(a++,a--) | 先进行表达式运算,再进行自增或者自减运算。 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class Demo04 { public static void main(String[] args) { int a = 3;
int b = a++;
int c = ++a;
System.out.println(a); System.out.println(b); System.out.println(c); } }
|
还有很多其他运算时通过Math类来实现的。
6、包机制、JavaDoc
6.1包机制
为了更好地组织类,Java提供了包机制,用用于区别类名的命名空间。包的本质就是文件夹。
包语句的语法格式为:
1
| package pk1[.pk2[.pk3...]];
|
一般利用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。
1
| import package1[.package2...].(classname *);
|
6.2JavaDoc
Javadoc命令是用来生成自己API文档的
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
使用命令行生成doc文件
 控制台中输入如下指令:
1
| javadoc -encoding UTF-8 -charset UTF-8 Doc.java
|
虽然有警告,但依然能在该目录下生成doc文件。
使用IDEA生成doc文件
首先创建一个存放JavaDoc的文件夹
然后在IDEA中点击如下选项
选择创建文件夹的位置,然后在Local行和编码集写下如下代码,即可设置为中文且防止了中文带来的乱码
参考文献
阿里巴巴Java开发手册-在线手册教程-php中文网
阿里巴巴Java开发手册_w3cschool
Overview (Java Platform SE 8 ) (oracle.com)