Java中的注释有三种:
单行注释
//注释内容
多行注释
/*
注释内容
*/
文档注释(和JavaDoc联合使用)
/** 注释内容 */
根据“文艺梁”的博客JAVA全部关键字可知Java全部50个关键字及功能
1 abstract //抽象方法,抽象类的修饰符
2 assert //断言条件是否满足
3 boolean //布尔数据类型
4 break //跳出循环或者label代码段
5 byte //8-bit 有符号数据类型
6 case //switch语句的一个条件
7 catch //和try搭配捕捉异常信息
8 char //16-bit Unicode字符数据类型
9 class //定义类
10 const //未使用
11 continue //不执行循环体剩余部分
12 default //switch语句中的默认分支
13 do //循环语句,循环体至少会执行一次
14 double //64-bit双精度浮点数
15 else //if条件不成立时执行的分支
16 enum //枚举类型
17 extends //表示一个类是另一个类的子类
18 final //表示一个值在初始化之后就不能再改变了
//表示方法不能被重写,或者一个类不能有子类
19 finally //try 语句不管是否发生异常都要执行的语句块
20 float //32-bit单精度浮点数
21 for //for循环语句
22 goto //未使用
23 if //条件语句
24 implements //表示一个类实现了接口
25 import //导入类
26 instanceof //测试一个对象是否是某个类的实例
27 int //32位整型数
28 interface //接口,一种抽象的类型,仅有方法和常量的定义
29 long //64位整型数
30 native //表示方法用非java代码实现
31 new //创建新的类实例并分配内存
32 package //一系列相关类组成一个包
33 private //表示私有字段,或者方法等,只能从类内部访问
34 protected //表示字段只能通过类或者其子类访问
//子类或者在同一个包内的其他类
35 public //表示共有属性或者方法
36 return //方法返回值
37 short //16位数字
38 static //表示在类级别定义,所有实例共享的
39 strictfp //浮点数比较使用严格的规则
40 super //表示基类
41 switch //选择语句
42 synchronized //表示同一时间只能由一个线程访问的代码块
43 this //表示调用当前实例
//或者调用另一个构造函数
44 throw //抛出异常
45 throws //定义方法可能抛出的异常
46 transient //修饰不要序列化的字段
47 try //表示代码块要做异常处理或者和finally配合表示是否抛出异常都执行finally中的代码
48 void //标记方法不返回任何值
49 volatile //标记字段可能会被多个线程同时访问,而不做同步
50 while //while循环
Java中所有组成部分都需要名字。类名、变量名、方法名ju被称为标识符。
所有标识符应以字母、美元符号($)、下划线开头
首字母后可以为字母、美元符号、下划线、数字的组合
不能以关键字作为变量名或方法名
标识符大小敏感
可以中文命名,但不建议使用
Java为强类型语言,所有变量需要先定义后使用
Java中的数据类型分为两大类
根据“刘小将”博客Java中数据类型的分类
数据类型拓展
? 二进制0b,八进制0,十六进制0x
? System.out.println(....);输出的为十进制
? Java中的float浮点数类型存在舍入误差,最好完全避免使用浮点数进行比较
银行业务中,可使用BigDecimal数学工具类,尽量避免浮点类型
强制转化可将字符转换成数字
所有字符的本质还是数字
从U0000 -- UFFFF
根据"种棵西府海棠吧"博客Java中的转义字符
运算中,不同类型的数据先转换为同一类型,再进行运算。
转换时注意内存溢出
强制转换:高-->低
自动转换:低-->高
注意:
public class Demo1 {
public static void main(String[] args) {
System.out.println((int)-45.7f); //精度问题
System.out.println((int)4.5);
System.out.println("==========================");
char c = ‘a‘;
int c2 = c + 1;
System.out.println((int)c);
System.out.println((char)c2);
System.out.println("===========================");
//操作比较大的数时,注意溢出问题
//JDK7新特性,数字间可用下划线分割
int money = 10_0000_0000;
int years = 20;
int total1 = money * years;
long total2 = money * years;//默认是int,转换为long之前就存在内存溢出
long total3 = (long)money * years;
long total4 = money * (long)years;
System.out.println(total1);
System.out.println(total2);
System.out.println(total3);
System.out.println(total4);
}
}
输出结果:
变量要素包括变量名、类型、作用域
type varName [=value];//数据类型 变量名 = 值
public class Var {
//类变量,关键字为static,从属于类
static double salary = 2500;
//属性
//实例变量,在类中均有效,从属于对象,若不初始化,为默认值
//实例变量中的布尔值默认为false
//除了基本类型,其余默认权全为ull
String name;
int age;
//main方法
public static void main(String[] args) {
//局部变量定义在方法中,仅在该方法中有效,且需声明初始化值
int i;
//System.out.println(i);//出错
//实例变量
Var v = new Var();
System.out.println(v.name);
System.out.println(v.age);
//若不实例化,则出错
//System.out.println(age);
//类变量输出
System.out.println(salary);
}
//其他方法
public void add(){
}
}
常量被初始化后便不可改变,常量名一般使用大写字母
final double PI = 3.14;
public class Constant {
//修饰符不存在先后顺序,public,final,static为修饰符
public final static double PI = 3.14;
static final double A = 2.1;
public static void main(String[] args) {
System.out.println(PI);
System.out.println(A);
}
}
可看“浅笑微凉”的博客java编程基础(二)
package base;
public class Demo {
public static void main(String[] args) {
int a = 1;
System.out.println(a++);//a++,先执行操作,a在自增
System.out.println(++a);//++a,a先自增,后再执行操作
//利用Math类
System.out.println("=============================");
double b = Math.pow(3, 2);
System.out.println(b);
}
}
与(and):&&
或(or):||
非(取反):!
与运算:&
或运算:|
异或:^
取反:~
左移:<<
右移:>>
package base;
//位运算符
public class Demo2 {
public static void main(String[] args) {
//问题:2*8最快运算
/*
0000 0000 0
0000 0010 2
0000 0100 4
0000 1000 8
0001 0000 16
*/
//位运算效率非常高
System.out.println(2<<3);
}
}
package base;
public class Demo3 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b;
System.out.println(a);
System.out.println(""+a+b);
System.out.println(a+b+"");
}
}
三元运算符
x ? y : z:若x为真,则结果为y,若x为假,则结果为z
运算符优先级
根据"GavinYao"的博客java运算符优先级
一般用公司域名的倒置作为包名,例com.baidu.www
关于IDEA中子包不折叠问题,可见“//承续缘_纪录片”的微博idea中创建子包不折叠
import com.a.*;
导入a下的所有类
通过命令行生成JavaDoc
利用IDEA生成JavaDoc文档
见“deniro_li”博客手把手教你使用 idea 生成漂亮的 javadoc 文档
原文:https://www.cnblogs.com/sgKurisu/p/14389650.html