注释
单行注释
//Hello,World!
多行注释
/*
Hello,World!
Hello,World!
Hello,World!
Hello,World!
*/
文档注释
/**
*@Description HelloWorld
*@Author Lv yipin
*/
标识符
关键字
-
所有的标识符都应该以字母(A-Z或者a-z),美元符($)、或者下划线(_)开始
-
首字符之后可以是字母(A-Z或者a-z),美元符($)、下划线(_)或数字的任何字符组合
-
不能使用关键字作为变量名或方法名
-
标识符是大小写敏感的
-
合法标识符举例:age、$salary、_value、__1_value
-
非法标识符举例:123abc、-salary、#abc
-
可以使用中文命名,但是一般不建议这样去使用,也不建议使用拼音,很low
数据类型
强类型语言
-
要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用
JAVA的数据类型分为两大类
基本类型(primitive type)和引用类型(reference type)
八大基本数据类型的取值范围
ps:在IDEA中可以通过Integer类、Byte类……查看源码直接知道取值范围。
什么是字节
-
位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数。
-
字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示,
-
1B(byte,字节) = 8bit(位)
-
字符:是指计算机中使用的字母、数字、字和符号
-
1bit表示1位
-
1Byte表示一个字节1B=8b
-
1024B=1KB
-
1024KB=1MB
-
1024MB=1GB
-
1024GB=1TB
字符型拓展(多思考)
public class Demo03 {
public static void main(String[] args) {
//整数拓展: 进制 二进制0b 十进制 八进制0 十六进制0x
int i = 10;
int i2 = 010;//八进制0
int i3 = 0x10;//十六进制0x 0~9 A~F 16
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
System.out.println("===================================");
//======================================================================================
//浮点数拓展? 银行业务怎么表示?钱
//BigDecimal 数学工具类
//======================================================================================
//float 有限 离散 舍入误差 大约 接近但不等于
//double
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
//最好完全避免使用浮点数进行比较
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d);//false
float d1 = 23131312312312313f;
float d2 = d1 + 1;
System.out.println(d1 == d2);//true
//======================================================================================
//字符拓展?
//======================================================================================
System.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 65 = A) 2字节 0 - 65536 Excel 2 16 = 65536
// U0000 UFFFF
char c3 = '\u0061';
System.out.println(c3);
//转义字符
// \t 制表符
// \n 换行
// ......
System.out.println("Hello\nWorld");
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(sc==sd);
//对象 从内存分析
//布尔值扩展
boolean flag = true;
if (flag==true){} //新手程序员
if (flag){} //老手
//Less is More! 代码要精简易读
}
}
类型转换
-
由于JAVA是强类型语言,所以要进行有些运算的时候的,需要用到类型转换。
低——————————————————————>高
byte , short , char ——> int ——> long ——> float ——> double
-
运算中,不同类型的数据先转化位统一类型,然后进行运算
-
强制类型转换
-
自动类型转换
public class Demo05 {
public static void main(String[] args) {
// int i = 128;
// byte b = (byte)i; //内存溢出 -128
//
int i = 128;
double b = i; //128.0
//强制转换 (类型)变量名 高--低
//自动转换 低--高
System.out.println(i);
System.out.println(b);
/*
注意点
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
4.转换的时候可能存在内存溢出,或者精度问题!
*/
System.out.println("=====================");
System.out.println((int)23.7); //23
System.out.println((int)-45.89f); //-45
System.out.println("=====================");
char c = 'a';
int d = c+1;
System.out.println(d);
System.out.println((char)d);
}
}
变量
-
变量是什么:就是可以变化的量!
-
JAVA是一种强类型语言,每个变量都必须声明其类型。
-
JAVA变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
type varName [=value];
//数据类型 变量名 = 值 ;
ps:可以使用逗号隔开来声明多个同类型的变量
-
注意事项
-
每个变量都有类型,类型可以是基本类型,也可以是引用类型
-
变量名必须是合法的标识符。
-
变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
-
变量作用域
-
类变量
-
实例变量
-
局部变量
public class Variable{
static int allClicks=0; // 类变量 修饰符static
String str="hello world"; // 实例变量
public void method(){
int i = 0; // 局部变量
}
}
常量
-
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 数据类型 常量名 = 值 ;
final double PI = 3.14;
-
常量名一般用大写字符
public class Demo09 {
//修饰符,不存在先后顺序 staitc final public
public static final double PI = 3.14;
public static void main(String[] args) {
System.out.println(PI);
}
}
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量(除了常量):首字母小写和驼峰原则:monthSalary ps:除了第一个单词以外,后面的单词首字母大写
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
运算符
-
JAVA语言支持如下运算符:
-
算术运算符:+ ,- ,* ,/ ,% ,++ ,--
-
赋值运算符:=
-
关系运算符:> ,< ,>= ,<= ,== ,! = ,instanceof
-
逻辑运算符:&& ,|| ,!
-
位运算符:& ,| ,^ ,~ ,>> ,<< ,>>>
-
条件运算符:?:
-
扩展赋值运算符:+= ,-= ,*= ,/=
运算符优先级
-
优先级 | 运算符 | 综合性 |
---|---|---|
1 | ()、[]、{} | 从左向右 |
2 | !、+、-、~、++、-- | 从右向左 |
3 | *、/、% | 从左向右 |
4 | +、- | 从左向右 |
5 | «、»、>>> | 从左向右 |
6 | <、<=、>、>=、instanceof | 从左向右 |
7 | ==、!= | 从左向右 |
8 | & | 从左向右 |
9 | ^ | 从左向右 |
10 | | | 从左向右 |
11 | && | 从左向右 |
12 | || | 从左向右 |
13 | ? : | 从右向左 |
14 | =、+=、-=、*=、/=、&=、=、^=、~=、«=、»=、>>>= | 从右向左 |
a++和++a(a--和--a同理)
package operator;
public class Demo04 {
public static void main(String[] args) {
//++ -- 自增 自减 一元运算符
int a = 3;
int b = a++; //执行完这行代码后,先给b赋值(b=3),再自增(a=4)
//a = a + 1
System.out.println(a); //4
//a = a + 1
int c = ++a;//执行完这行代码前,先自增(a=5),再给b赋值(b=5)
System.out.println(a); //5
System.out.println(b); //3
System.out.println(c); //5
}
}
逻辑运算
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));//逻辑运算:两个变量都为真,结果才为true
System.out.println("a || b : " + (a || b));//逻辑或运算:两个变量有一个为真,结果才为true
System.out.println("!(a && b) : " + !(a && b));//如果是真,则变为假,如果是假则变为true
//短路运算
int c = 5;
boolean d = (c < 4) && (c++ < 4);//c<4直接直接能判断出结果,所以后面的c++没有执行
System.out.println(d);//false
System.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每一位比较 有0为0,全1为1
A|B = 0011 1101 或运算 A和B每一位比较 有1为1,全0为0
A^B = 0011 0001 异或运算 A和B每一位比较 相同为0,不相同为1
~B = 1111 0010 取反运算 将B所有位取反 1变0 0变1
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 2的2进制编码是0000 0010 左移3位以后0001 0000 所以结果是16
}
}
三元运算符
package operator;
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
//如果x==true,则结果位y,否则结果位z
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
}
}
拓展运算符
package operator;
public class Demo07 {
public static void main(String[] args){
int a = 10;
int b = 20;
a+=b;//a = a+b
a-=b;//a = a-b
System.out.println(a);
//字符串连接符 + ,String
System.out.println(a+b+"");//30 如果字符串在后面运算依然会进行
System.out.println(""+a+b);//1020 如果字符串在前面会将后面的拼接
}
}
包机制
-
为了更好地组织类,JAVA提供了包机制,用于区别类名的命名空间。
-
包语句的语法格式为:
package pkg1[. pkg2[. pkg3...]]
-
一般公利用公司域名倒置作为包名
-
为了能够使用某一个包的成员,我们需要在JAVA程序包中明确导入该包。使用“import”语句可完成此功能
import package[. package2....]. (classname|*);
JavaDoc生成文档
-
javadoc命令是用来生成自己API文档的
-
参数信息
-
@author 作者名
-
@version 版本号
-
@since 指明需要最早使用的jdk版本
-
@param 参数名
-
@return 返回值情况
-
@throws 异常抛出情况
-
package com.lv.base;
/**
* @author Lv
* @version 1.0
* @since 1.8
*/
public class Doc {
String name;
/**
* @author Lv
* @param name
* @return
* @throws Exception
*/
public String test(String name) throws Exception{
return name;
}
}
IDEA生成javadoc文档来自教程手把手教你使用 idea 生成漂亮的 javadoc 文档_读万卷书,行万里路-CSDN博客_使用idea生成javadoc文档