02 Java基础
Java基础01——注释
- 单行注释 // 快捷键:ctrl+/
- 多行注释 /* */
- 文档注释 /** */
注释不参与编译,注释是给人看的,所以多写注释是一个很好的习惯。
注意:建立项目时,查看project structure——》project——》sdk使用1.8,Project language level 使用8,不一致可能会报错。
可以在settings中设置注释的样式:Editor——》Color Scheme——》Java——》Comments(注释)下刚好有三种注释。
Java基础02——标识符和关键字
标识符
- java所有的组成部分都需要名字,类名,变量名以及方法名都被成为标识符。
- 所有的标识符都是以字母,美元符$和下划线_开始。
- 首字母后可以是字母、美元符、下划线或任何数字的组合。
- java大小写敏感,所以要区分大小写。
- 可以使用中文,但不建议使用,也不建议使用拼音。
关键字
关键字为已定义好的具有特殊含义的“标识符”,不可以作为标识符,下图为部分关键字。在以后的学习会经常用到。
Java基础03 数据类型详解
强类型语言:变量的使用要严格符合规定,所有变量都必须先定义后使用。
定义变量和初始化类型要一致。
如 String a = 10 报错:int 无法转化为String
如 int a = "hello" 报错:String 无法转化为int
数据类型
什么是字节
- 位(bit):计算机存储的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中处理的基本单位,习惯上用大写B来表示。
- 1B(byte,字节)= 8bit(位)
- 1G = 1024M = 1024^2KB = 1024^3B = 1024^3*8b
思考:系统32位和64位的区别
参考链接 https://product.pconline.com.cn/itbk/software/dnyw/1802/10845824.html
Java基础04 数据类型扩展及面试题详解
点击查看代码
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("======================== ");
// 浮点数拓展? 银行业务怎么表示钱?
System.out.println("======================== ");
// float 有限 离散 舍入误差 大约 接近不等于
// double
// 最好完全避免浮点数比较
// 最好完全避免浮点数比较
// 最好完全避免浮点数比较
float f = 0.1f;
double d = 1.0/10;
System.out.println(f==d); //false
System.out.println(f);
System.out.println(d);
float f1 = 2313123123123123f;
float f2 = f1 + 1;
System.out.println(f1==f2); //true
// ==========================
// 字符拓展
// ==========================
char c1 = 'a';
char c2 = '中';
System.out.println(c1);
System.out.println((int)c1);
System.out.println(c2);
System.out.println((int)c2);
// 所有字符本质还是数字
// Unicode编码 2字节 0—65536
// \U0000 \UFFFF
char c3 = '\u0061';
System.out.println(c3); //a
// 转义字符
// \t
System.out.println("hello\tworld");
System.out.println("======================");
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 比较的是常量
// 布尔值扩展
boolean flag = true;
if(flag==true){}
if(flag){}
// Less is More! 代码要精简易懂
}
}
java基础05 -- 类型转换
运算中不同类型数据先转换为统一类型再进行运算。
低--------------------------->高
byte ,short,char->int->long->float->double (小数优先级大于整数)
这里出现了—128,是为什么呢? 输入Byte,Ctrl+左键点击,可以看到Byte取值为-128~127;
强制类型转换 高-->低
强制类型转换1
public class Demo04 {
public static void main(String[] args) {
int i = 128;
byte b = (byte)i;
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);
}
}
类型转换注意问题
public class Demo06 {
public static void main(String[] args) {
// 操作大数时注意溢出问题
int money = 10_0000_0000;
// jdk7新特性,数字之间可以用下划线分割,便于读
System.out.println(money);
int year = 20;
int total = money*year;
System.out.println(total); //-1474836480,内存溢出了
long total2 = money*year;
System.out.println(total2); //默认为int,转换之前已经存在问题了?
long total3 = money*(long)year; //先把一个数转为long,
System.out.println(total3);
}
}
变量、常量、作用域
变量
可以变化的量。//数据类型 变量名=值
常量
final double PI = 3.14;
使用final关键字进行常量定义,常量就是无法改变的量,固定值。
作用域
- 局部变量:方法体内,必须定义和初始化
- 实例变量:从属于对象,不初始化则有默认值
- 类变量:使用static,从属于类
变量的命名规范
Java基础07 ——基本运算符
有C语言基础,这些运算符都见过,除了关系运算符中的instanceof
- ++,--为单目运算符,b=a++,为先用,后加。b=a;a=a+1;
而b=++a,为先加后用,a=a+1;b=a; - ? :为三目运算符,x?y:z;如果x为true,表达式结果为y;如果x为false,表达
式结果为z。
Java基础08--包机制
包的本质其实就是文件夹。
一般公司域名倒置作为包名,如com.baidu.www
定义包为package放在代码顶部,导入包使用import。
注意:一般在定义类名时尽量不重复,否则在不同包下的同类名文件导入会报错。
推荐《阿里巴巴Java开发手册》
JavaDoc生成文档
- 用来生成自己的API文档。
1.在导航栏中,路径前加cmd+空格,可进入该路径下的命令行
2.按shift加鼠标右键,“在此处打开命令行窗口”
3.输入此命令,规范字符为中文。
javadoc -encoding UTF-8 -charset UTF-8 Doc.java
4.生成的许多文档中,找到首页index.html文档,打开即可查看。
查找:如何使用IDEA生成doc文档。
工具栏tools--》generate JavaDoc--》在Other command line arguements输入-encoding utf-8 -charset utf-8--》ok 自动打开doc界面。
学习思想:面对百度编程