注释
单行注释
//这是单行注释
多行注释
/* 1这里是多行注释 2这里是多行注释 3这里是多行注释 4这里是多行注释 */
文档注释(JavaDoc)
/** * @Description:HelloWorld * @Author:TheBeacon */
标识符
Java对所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
所有的标识符都应该以字母(A-Z或a-z),美元符($),或者下划线(_)开始。
首字符之后可以是以字母(A-Z或a-z),美元符($),或者下划线(_)或数字的任何字符组合
不能使用关键字作为变量名或方法名。
标识符是大小写敏感的。
合法标识符举例:
age
,$salary
,_value
,_1_value
非法标识符举例:
123abc
,-salary
,#abc
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很Low
数据类型
强类型语言:
- 要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。
弱类型语言:
- 不要求变量的使用要严格符合规定
Java的数据类型分为两大类:
基本类型(primitive type):
数值类型:
整数类型:
byte(1)
,short(2)
,int(4)
,long(8)
浮点类型:
float(4)
,double(8)
字符类型:
char(2)
boolean类型:占一位,其值只有
false
和true
两个public class Demo01 {public static void main(String[] args) {//八大基本数据类型//整数int num1 = 10;byte num2 = 20;short num3 = 30;long num4 = 40L;//long类型要在数字后面加个L//小数:浮点数float num5 = 50.1f;//float类型要在数字后面加个fdouble num6 = 3.14159265358;//字符char name = 'A';//字符串 String不是关键字,是类String name1 = "TheBeacon";//布尔值boolean flag = true;}}
引用类型(reference type):
类,接口,数组
数据类型拓展
public class Demo02 {public static void main(String[] args) {//整数拓展:进制 二进制0b 十进制 八进制0 十六进制0xint i = 10;int j = 010; //八进制0int k = 0x10; //十六进制0xSystem.out.println(i);System.out.println(j);System.out.println(k);System.out.println("======================================");//===============================================//浮点数扩展 银行业务怎么表示?¥// BigDecimal 数学工具类//float 有限 离散 舍入误差 大约 接近但不等于//double//最好避免使用浮点数进行比较//最好避免使用浮点数进行比较//最好避免使用浮点数进行比较float f = 0.1f; //f:0.1double d = 1.0 / 10;//d:0.1System.out.println(f == d);//falseSystem.out.println(f);System.out.println(d);float d1 = 2323232323232232323f;float d2 = d1 + 1;System.out.println(d1 == d2);//trueSystem.out.println("======================================");//===============================================//字符拓展//===============================================char c1 = 'a';char c2 = '中';System.out.println(c1);System.out.println((int)c1);//强制转型System.out.println(c2);System.out.println((int)c2);//所有字符本质还是数字//编码 Unicode 表:97 = a 2字节 0 - 65536 Excel 2^16 = 65536// U0000 - UFFFFchar c3 = '\u0061';System.out.println(c3);//a//转义字符//\t 制表符// \n 换行//字符串 StringString sa = new String("hello world");String sb = new String("hello world");System.out.println(sa == sb);//falseString sc = "hello world";String sd = "hello world";System.out.println(sc == sd);//true//对象 从内存分析}}
类型转换
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换
低-------------------------------------高byte,short,char->int->long->float->double
运算中,不同类型的数据先转化为同一类型,然后进行计算。
public class Demo03 {public static void main(String[] args) {int i = 128;//i: 128//强制转换 (类型)变量名 高->低byte b = (byte)i;//内存溢出System.out.println(b);// b: -128//自动转换 低->高double d = i;/* * 注意点: * 1.不能对布尔值进行转换 * 2.不能把对象类型转换为不相干的类型 * 3.在把高容量转换到低容量的时候,强制转换 * 4.转换的时候可能存在内存溢出,或者精度问题! * */System.out.println("==================================");System.out.println((int)23.7);//23System.out.println((int)-45.62f);//-45System.out.println("==================================");char c = 'a';int d1 = c + 1;System.out.println(d1);System.out.println((char)d1);}}
在计算大数的时候注意先把类型不匹配问题解决掉。
public class Demo04 {public static void main(String[] args) {//操作比较大的数的时候,注意溢出问题//JDK7新特性,数字之间可以用下划线_分割int money = 10_0000_0000;//1000000000int years = 20;int total = money * years;System.out.println(total);//-1474836480,计算的时候溢出了long total2 = money * years;//默认是int,转换之前已经存在问题了System.out.println(total2);long total3 = money * (long)years;//先把一个数转换为longSystem.out.println(total3);//L l和1容易分不清}}
变量
变量是什么:就是可以变化的量。
Java是一种强类型语言,每个变量都必须声明其类型。
Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和 作用域。
变量作用域:
类变量
实例变量
局部变量
public class Demo05 {//类变量 staticstatic double salary = 2500;//属性:变量//实例变量:从属于对象;如果不进行初始化,这个类型的默认值//布尔值:默认是false//除了基本类型,其余的默认值都是nullString name;//默认为nullint age;//默认为0static {//作用域高}//main方法public static void main(String[] args) {//局部变量:必须声明和初始化int i = 10;System.out.println(i);Demo05 demo08 = new Demo05();System.out.println(demo08.name);//类变量 staticSystem.out.println(salary);}//其他方法public void add() {}}
注意事项
- 每个变量都有类型,可以是基本类型,也可以是引用类型。
- 变量名必须是合法标识符。
- 变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量的命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary,lastName
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
常量
**常量(Constant):**初始化(initialize)之后不能再改变值!不会变动的值。
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);}}
运算符
Java语言支持如下运算符:
- 算术运算符:+,-,*,/,%,++,–
- 赋值运算符:=
- 关系运算符:>,<,<=,>=,==,!=,instanceof
- 逻辑运算符:&&,||,!
- 位运算符:&,|,^,~,>>,<<,>>>(了解!!!)
- 条件运算符:?:
- 扩展赋值运算符:+=,-=,*=,/=
二元运算符
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);//不转型为0}}
自动转型
package operator;public class Demo02 {public static void main(String[] args) {long a = 12123123123131L;int b = 123;short c = 10;byte d = 8;System.out.println(a + b + c + d);//LongSystem.out.println(b + c + d);//IntSystem.out.println((c + d));//Int}}
关系运算
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 21 / 10 = 2 ···1System.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 + 1System.out.println(a);//4//++a a = a + 1int c = ++a;//先自增,再给c赋值System.out.println(a);//5System.out.println(b);//3System.out.println(c);//5//幂运算 2^3 2 * 2 * 2 = 8 很多运算,我们会使用一些工具类来操作double pow = Math.pow(2,3);System.out.println(pow);}}
逻辑运算符
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));//逻辑与运算:两个变量都为真,结果才为trueSystem.out.println("a || b:" + (a || b));//逻辑或运算:两个变量有一个为真,其结果才为trueSystem.out.println("! (a && b):" + !(a && b));//逻辑非运算:结果为真,则变为假//短路运算int c = 5;boolean d = (c < 4) && (c++ < 4);System.out.println(d);//falseSystem.out.println(c);//5}}
位运算和移位运算
package operator;public class Demo06 {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 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 1000 8 0001 0000 16 */System.out.println(2 << 3);//16}}
+=、-=和字符串连接符
package operator;public class Demo07 {public static void main(String[] args) {int a = 10;int b = 20;a += b;//a = a + ba -= b ;//a = a - bSystem.out.println(a);//字符串连接符 + StringSystem.out.println(a + b);//30System.out.println("" + a + b);//1020System.out.println(a + b + "");//30}}
三元运算符
package operator;//三元运算符public class Demo08 {public static void main(String[] args) {//X ? Y : Z//如果X = true,则结果为Y,否则为Zint score = 80;String type = score < 60 ? "不及格" : "及格";//必须掌握//if判断System.out.println(type);//及格}}
包机制
为了更好的组织类,Java提供了包机制,用于区别类名的命名空间。
包语句的语法格式为:
package pkg1[.pkg2[.pkg3...]];
一般利用公司域名倒置作为包名;
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用"import"语句可完成此功能
import package1[.package2...].(classname|*);
JavaDoc
JavaDoc命令是用来生成自己API文档的。
命令:
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
使用IDEA生成JavaDoc文档
JavaDoc是一种将注释生成HTML文档的技术,生成的HTML文档类似于Java的API,易读且清晰明了。在简略介绍JavaDoc写法之后,再看一下在Intellij Idea 中如何将代码中的注释生成HTML文档。
IDEA如何配置后生成JavaDoc文档
- one
- two
解释一哈:
选择是整个项目还是模块还是单个文件
文档输出路径
Locale 选择地区,这个决定了文档的语言,中文就是zh_CN
传入JavaDoc的参数,一般这样写 -encoding UTF-8 -charset UTF-8 -windowtitle “文档HTML页面标签的标题” -link http://docs.Oracle.com/javase/7/docs/api
控制台输出:
这样就生成到指定位置了,找到***index.html***打开就可看到生成的文档了!