Java基础
注释
注释不会被执行,是给写代码的人看的。书写注释是一个非常好的习惯
Java中有三种注释:
- 单行注释
// 注释内容 - 多行注释
/* 注释内容 */ - 文档注释
/** 注释内容 */
标识符和关键字
类名、变量名以及方法名都被称为标识符。
1、必须由大小写字母、数字、下划线(_)和美元符号($)组成;
2、不能以数字开头;
3、不能与关键字冲突;
4、不能和java类库的类名冲突;
5、应该使用有意义的名称(见名知意);
6、大小写敏感
数据类型
Java是强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用。安全性高,但速度慢。
Java的数据类型分为两大类
- 基本类型(primitive type)
- 引用类型(reference type):类,接口,数组
String 字符串String s = " abcccd "; System.out.println(s.charAt(2));//显示第2坐标符号 System.out.println(s.indexOf("a"));//显示"a"所在坐标位置 System.out.println(s.length());//显示坐标长度 System.out.println(s.equals("ccdd"));//比对是否正确true or false System.out.println(s.compareTo("ABCD"));//比较大小a<b,返回正值,否者相反。等于为0. System.out.println(s.toLowerCase());//变成小写"abcd" System.out.println(s.toUpperCase());//变成大写"ABCD" System.out.println(s.trim());//当有空格存在时" abcd ",删除空格。 System.out.println(s.split("b"));//从指定位置切开
八大基本类型:
| 数据类型 | 描述 | 占用字节 | 取值范围 | 默认值 | 封装器类 |
|---|---|---|---|---|---|
| boolean | 布尔类型,用于判断真或假 | 1个字节 | 仅有两个值,即true、false | false | Boolean |
| byte | Java中最小的数据类型 | 1个字节 | -128~127 | 0 | Byte |
| char | 字符型,用于存储单个字符 | 2个字节 | 0~65535 | 空 | Character |
| short | 短整型 | 2个字节 | -32768~32767 | 0 | Short |
| int | 整型,用于存储整数 | 4个字节 | -2147483648~2147483647 | 0 | Integer |
| long | 长整型 | 8个字节 | -2^63 ~ 2^63-1 | 0L | Long |
| float | 浮点型,用于存储带小数点的数字 | 4个字节 | / | 0.0f | Float |
| double | 双精度浮点型,用于存储带有小数点的数字 | 8个字节 | / | 0.0d | Double |

什么是字节
- 位(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。
- 字节(byte):是计算机中 数据处理 的基本单位,习惯上用大写B来表示。
- 1B(byte,字节) = 8bit(位)
- 字符:是指计算机中使用的字母、数字、字和符号
- 1bit表示1位
- 1Byte表示一个字节 1B=8b
- 1024B=1KB
- 1024KB=1M
- 1024M=1G
- 1024G=1TB
整数拓展:
10进制转2进制
-
短除法:
35:(35/2=17(余1)/2=8(1)/2=4(0)/2=2(0)/2=1(0)/2=0(1)反读)=100011100011 1* 2(0)+1* 2(1)+0* 2(2)+1* 2(5)=1+2+32=35(正向的)
-
找次方数:
35:35-2(5)=3-2(1)=1-2(0)=100011(有数的次方上加1,没有的补0)216:216-2(7)=88-2(6)=24-2(4)=8-2(3)=11011000
浮点数拓展:
- float 、double 不够准确; 实际过程中浮点数无限且离散的,但是float是有限的,他会自动舍入误差,大约接近,但不等于;
- 银行等准确的计算工具最好使用 BigDecimal 数学工具类
- 精确的对账最好完全避免使用浮点数进行比较
字符拓展:
- 所有的字符本质还是数字
- Java使用Unicode字符集编码,格式 '\u0000'-'\uFFFF'
(Unicode是世界通用的定长字符集,所有的字符都是16位,2个字节)
转义字符:
如:'\n'“换行”,'\t'“制表符”;‘\’,‘\b’,‘\r’,‘\u0061’。
数字编码:‘0’:48,‘1’:49…
英文编码:‘A’:65,‘B’:66…
小写英文:‘a’:97,‘b’:98…
类型转换:
由于Java是强类型语言,所以要进行有些运算的时候,需要用到类型转换。
低 ------------------------------------------------------>高
byte, short, char -> int -> long -> float -> double
(小数的优先级高于整数)
运算中,不同类型的数据先转换为同一类型,然后进行运算。
强制类型转换:( 高 -> 低 )
自动类型转换:( 低 -> 高 )

注意:
1、不能对布尔值进行转换
2、不能把对象类型转换为不相干的类型
3、在把高容量转换到低容量的时候,需要强制转换
4、转换的时候可能存在内存溢出,或者精度问题!
(Java7 新特性,数字之间可以用下划线分割 10_0000_0000 )
变量
-
变量是什么:就是可以变化的量!
-
Java是一种强类型语言,每个变量都必须声明其类型。
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。
注意事项:
1、每个变量都有类型,类型可以是基本类型,也可以是引用类型。
2、变量名必须是合法的标识符。
3、变量声明是一条完整的语句,因此每一个声明都必须以分号结束。
变量作用域
-
类变量
在类里,整个类里可以使用,前面必须加static关键字;例:static int a = 3; -
实例变量
在类里,从属于对象;int age;//默认值为0;
如果不自行初始化,数值类型的默认值 0 或 0.0 ;
布尔值:默认是false;除了基本类型,其余的默认值都是null; -
局部变量
在方法中,使用时必须声明和初始化值;int i = 3;
变量的命名规范
-
所有变量、方法、类名:见名知意
-
类成员变量:首字母小写和驼峰原则:monthSalary(除了第一个单词外,后面的单词首字母大写)
-
局部变量:首字母小写和驼峰原则
-
常量:大写字母和下划线:MAX_VALUE
-
类名:首字母大写和驼峰原则:Man,GoodMan
-
方法名:首字母小写和驼峰原则:run(),runRun()
常量
-
常量(Constant):初始化(initialize)后不能再改变值!不会变动的值。
-
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
final 常量名 = 值;
final double PI = 3.14;
- 常量名一般使用大写字符。
注意:
static final double PI = 3.14;修饰符,不存在先后顺序。
运算符
-
算术运算符:+,-,*,/,%(余),++(自增),–-(自减);
-
赋值运算符:=;
-
关系运算符:> , < , >= , <= , == , != , instanceof;
-
逻辑运算符:&& (与), ||(或), !(非);
(计算结果一定是true or false) -
位运算符:&,|,^,~,>>,<<,>>>;
-
条件运算符:?:;
x?y:z; //x值如果为true=y,如果为false=z; -
扩展赋值运算符:+=,-=,*=,/=;
++(自增)【–-(自减)同理】
-
a++:先赋值,再自增;
-
++a:先自增,再赋值;
int a = 5;
int b = a++;//a++加在后,先给b赋值,再自增;
System.out.println(a);//a=6
System.out.println(b);//b=5
================================================
int c = ++a;//++a加在前,先自增,再赋值给c;
System.out.println(a);//a=6;
System.out.println(c);//c=6;
短路运算
&& 当前面为“false”时,后面的将不执行,只有“true”才会运行。
int z = 5;
boolean x = (z<4)&&(z++<4);//由于(z<4)不成立为false,(z++<4)就不运行
System.out.println(x);//(false)
System.out.println(z);//(5)由于(z++<4)没有运算,所以z没有自增
位运算符
-
& :全部为1才为1,否者为0
-
| :全部为0才为0,否者为1
-
^ :相同为0,否者为1
-
~(取反):取二进制相反的数
A = 1100 0011
B = 1001 0110
---------------
A&B= 1000 0010
A|B= 1101 0111
A^B= 0101 0101
~B = 0110 1001
-
"<<"二进制左位移=代表*2
2<<3=2*2*2*2=16 -
">>"二进制右位移=代表/2
字符串连接符
在“+”号前出现String类型时,他会把“+”后面的一操作数,转换成String类型,进行拼接。
int a = 5, b = 20;
System.out.println("yes"+a+b);//(yes520)
System.out.println(a+b+"yes");//(25yes)
System.out.println("yes"+(a+b));//(yes25)
System.out.println(""+a+b+"yes");//(520yes)
System.out.println(""+a+b+(a+b)+"yes");//(52025yes)
包机制
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。(包的本质就是文件夹)
包语句的语法格式为:package pkg1[.pkg2[.pkg3...]];//定义包
一般利用公司域名倒置作为包名; 例:com.baidu.www
为了能够使用某一个包的成员,我们需要在Java程序中明确导入该包。使用“import”完成此功能
import package1[.package2...].(classname|*);//导入包,*表示导入这个包下所有的类
JavaDoc
javadoc命令是用来生成自己API文档的
参数信息
- @author 作者名
- @version 版本号
- @since 指明需要最早使用的jdk版本
- @param 参数名
- @return 返回值情况
- @throws 异常抛出情况
生产文档:javadoc 参数 java文件
javadoc -encoding UTF-8 -charset UTF-8 文件名.java

浙公网安备 33010602011771号