Java学习01(基础部分)
注释
Java的注释有三种
- 单行注释
- 多行注释
- 文档注释
标识符
关键字
Java所有的组成部分都需要名字。类名、变量名、方法名都被称为标识符。
注意:
- 所有标识符都应该是以 字母(A-Z或a-z),美元符($),或者下划线(_)开始
- 首字母后可以是字母,美元符,下划线或数字的任意组合
- 不能使用关键字作为变量名或方法名
- 标识符是大小写敏感的
- 合法标识符:age、$salary、_value、__1_value
- 非法标识符:123abc、-salary
数据类型
-
强类型语言
要求变量分使用符合严格规定,所有变量都必须先定义后使用。
-
弱类型语言
-
Java的数据类型分为两大类
-
基本类型
-
数据类型
-
整数类型
-
byte(字节)占1个字节范围:-128~127
-
short(短整型)占2个字节范围:-32768~32767
-
int(整型)占4个字节范围:-2147483648~2147483647
-
long(长整型)占8个字节范围(定义需要在数字后加个L):-9223372036854775808~9223372036854775807
long num4 = 700L;
-
-
浮点类型(小数)
-
float(单精度浮点型)占4个字节(定义需要在数字后加F)
float num5 = 50.4F;
-
double(双精度浮点型)占8个字节
-
BigDecimal
-
-
字符类型
- char占2个字节
- ascii(0~255):一个英文字母(不分大小写)占1个字节,一个中文汉字占2个字节
- utf-8:一个英文字母(不分大小写)占1个字节,一个中文汉字占3个字节
- Unicode:一个英文字母(不分大小写)占2个字节,一个英文标点占1个字节,一个中文汉字占3个字节
- GBK:一个英文(不分大小写)1个字节,一个中文2个字节
- \u0000:\b;\n;\t;\r
-
-
boolean类型(布尔值):占1位,其值只有true Or false
-
-
引用类型
- 类
- 接口
- 数组
-
数据类型扩展
- 二进制:0b
- 八进制:0
- 十六进制:0x(09,AF)
- float浮点数:数为有限,存在舍入误差,因为不能精确表示只能用大约数(接近但是不等于),是离散的。(最好完全避免使用浮点数进行比较,有一个BigDecimal类)
字符拓展
char c1 = 'c';
char c2 = '钟';
char c3= '\u0061';
System.out.println(c1);
System.out.println((int)c1);
System.out.println("——————————————————);
System.out.println(c2);
System.out.println((int)c2); //强制转换
//所有的字符本质还是数字
//编码 Unicode:占2个字节;0~65536个字符 (97=a 65=A)
System.out.println("————————————————————);
System.out.println(c3);
System.out.println((int)c3);//'\u0061'=a=97
/*
转义字符: \t制表符
\n换行
*/
String sa = new String("Hello world");
String sb = new String("Hello world");
System.out.println(sa==sb);
//布尔值扩展
boolean flag = true;
if(flag==true){} //新手
if(flag){} //老手
//代码要精简易读
什么是字
- 位(bit):是计算机里最小的数据存储单位,11001100是一个八位二进制数
- 字节(byte):是计算机中数据处理的基本单位,习惯用大写B表示
- 1B(byte)=8bit(位)
- 字符:是计算机中的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节,1B=8bit
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
类型转换
-
Java是强类型语言,所以有些运算时需要进行类型转换。
低 -------------------------------------------> 高(按容量排序)
byte,short,char-> int -> long(64) ->float(32,但是小数优先级大于整数) ->doubule
-
强类型转换
小容量数转大容量数
-
弱类型转换
int a = 128;
byte b = (byte)a;
double d = a;
//强制转换 (类型名)变量名 容量由低到高需要强制转换
System.out.println(a);
System.out.println(b);
System.out.println("——————————————————————");
System.out.println(d);
/*
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换成不相干的类型
3.高容量转换成低容量需要强制转换
4. 转换时可能出现内存溢出
*/
char sun ='孙';
System.out.println((int)sun);
int sun2 = (int)sun +1;
System.out.println((char)sun2);
//操作比较大的数时,注意溢出问题
//JDK7新特性,数字之间可以用下划线分隔(下划线不被输出)
int money = 10_0000_0000;
int year = 20;
int total = year * money;
System.out.println(total); //输出-14亿,容量超载
long total2 = year * money;
//结果还是-14亿,默认是int类型,先计算后赋值,转换之前已经计算出int类型的值是-14亿再赋给total2
long total3 = money*((long)year); //先把一个数转换成long
System.out.println(total3); //结果输出两百亿
变量
-
变量是什么:可以变化的量
-
Java是一种强类型语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和***作用域***
type varName [=value] [{,varName[=value]}]; //数据类型 变量名 = 值;可以用逗号来声明多个同类型变量(一般不建议)。
注意事项
- 每个变量都必须有类型,可以是基本类型也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一条声明都以分号结尾
变量作用域
- 类变量
- 实例变量
- 局部变量
static int allClicks=0; // 类变量
String str="Helloword!"; // 实例变量
public viod method(){
int i=0; // 局部变量
}
常量
-
常量:初始化之后不能改变其值
-
所谓常量是一种特殊的变量,它的值被设定之后,在运行过程中不能被改变
final 变量名=变量值; final double PI=3.14;
-
变量名一般用大写字符
命名规范
- 所有变量、方法、类名:见名知意
- 类成员变量:首字母小写和驼峰原则:monthSalary(除静态变量/常量统称成员变量)
- 局部变量:首字母小写驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man;GoodMan
- 方法名:首字母小写和驼峰原则:run();runFast()
运算符
-
算术运算符:+,-,*,/,%(取余),++(自加),–(自减)
-
赋值运算符:=
-
关系运算符:>,<,>=,<=,==,!=,intanceof
-
逻辑运算符:&&,||,!
-
位运算符:&,|,^,~,>>,<<,>>>
-
条件运算符(三元运算符):?:
//x? y:z //如果X为true,结果为y,否则为Z int score=80; String type=score<60?"不及格":"及格"; System.out.println(type); }
-
扩展赋值运算符:+=,-=,*=,/=
包
-
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间,防止命名冲突。
-
包的语法格式
package pkg1{.pkg2{.pkg3...}};
-
一般利用公司域名倒置作为包名
-
为了能够使用某一包成员,需要在Java程序中明确导入该包。
import package1[.package2].(classname|*);
Java Doc
-
javadoc命令使用来生成自己的API文档(把java文件编译成文档让人阅读)
在命令行模式下通过javadoc命令运行java文件
如:F:\workspace\Idea\JavaLearning\src\base>javadoc -encoding UTF-8 -charset UTF-8 Doc.java
编码:-encoding UTF-8;字符集编码:-charset UTF-8。设置编码,避免因为文件中的中文字符报错
-
参数信息
/** * @author 作者名 * @version 版本号 * @since 指明需要最早使用的jdk版本 * @param 参数名 * @return 返回值情况 * @thorws 异常抛出情况 */