JAVA基础复习(一)
基础复习
标识符
- 关键字
- Java所有的
- 所有的标识符都应该以字母(A-Z 或者 a-z),美元字符($ )、或者下划线( _ )开始
- 首字母之后可以是字母,美元符号、下划线或者数字的任何字符组合
- 不饿使用关键字作为变量名或者方法名
- 表示是大小写敏感的,大小写是有区别的
- 合法的标识符举例:
- 非法标识符举例:123abc
- 可以使用中文标识符,但是不见使用拼音
数据类型
-
强类型语言
- 要求变量的使用要严格的规定,所有变量都i必须先定义后使用
-
弱类型语言
- 与强类型语言相反
-
Java的数据类型分为两大类
- 基本类型
- 数值类型
- 整数类型
- byte占1个字节范围
- short占2个字字节范围
- int占4个字节范围,最常用
- long占8个字节范围,Long类型要在后面加个L
- 浮点类型
- float占4个字节,要在后面加F
- double占8个字节
- 字符类型
- char占2个字节
- 整数类型
- boolean类型:占1个位,只有true和false两个
- 数值类型
- 引用类型
- 类
- 接口
- 数组
- 基本类型
什么是字节?
- 位:是计算机内部数据 存储的最小单位
- 字节:是计算机数据处理的基本单位,习惯上用大写B来表示
- 1B = 8 bit
- 字符:是计算机额中使用的字母、数字、字和符号
整数拓展
-
进制
-
二进制,0b开头
-
十进制
int i = 10; -
八进制,0开头
int i2 = 010; -
十六进制,0x开头
int i3 = 0x10;
-
浮点数扩展
-
float是有限的,存在差异,往往接近但是不等于
-
最好完全避免使用浮点数进行比较
float f1 = 3132131232312.1f; float f2 = f1 +1; double d1 = 1.0/10; float f3 = 0.1f; System.out.println(f1); System.out.println(f2); System.out.println(f2==f1); System.out.println(d1==f3);
字符拓展
-
所有的字符本质还是数字
-
编码 Unicode
char c1= 'a'; char c2= 'b'; System.out.println(c1); System.out.println(c2); System.out.println((int)c2);
转义字符
- 制表符 \t
- 换行 \n
类型转换
-
由于java是强类型语言,所以要进行运算的时候,需要用类型转换
- 低 》------------------------------------------------》高
- byte,short,char -> int -> long -> float -> double
-
运算中,不同类型数据先转换为同一类型,然后进行运算
-
强类型转换
-
从高到底需要强制
int i = 1; byte b = (byte) i;
-
-
自动类型转换
-
从低到高
int i = 1; double b = i;
-
-
注意点
- 不能对布尔值进行转换
- 不能把对象类型转换为不相干的类型
- 在把高容量转换到低容量的时候,强制转换
- 转换的时候可能存在内存溢出,或者精度问题!
-
//操作比较大的时候,注意溢出问题 //JDK7新特性,数字之间可以永下划线分割 int money = 10_0000_0000; int years = 20; System.out.println((long)money*years);
变量
-
变量是什么:就是可以变化的量
-
Java是一种强类型语言,每个变量必须声明其类型
-
Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
type varName [=value] [{,varName[=value]}]; -
注意点
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个声明都必须以分号结束
变量作用域
-
类变量
-
实例变量
- 从属于对象,需要new一个对象来调用,来自c++的基础
-
局部变量
public class HelloWorld { /* 实例变量:从属于对象;如果不自行初始化,这个类型的默认值是 0 0.0 布尔值:默认是false 除了基本类型,其余的默认值都是null 类变量 static 常量 final修饰,常量名全部大写 修饰符不存在前后顺序 */ static double salary = 2500; static final double WORKING = 100; int a; String s1; public static void main(String[] args) { //局部变量 int b=2; HelloWorld hello1 = new HelloWorld(); System.out.println(hello1.a); System.out.println(b); System.out.println(salary); } /** * 其他方法 */ public void add(){ } }
变量的命名规则
- 所有变量、方法、类名:简单明了
- 类成员变量:首字母小写和驼峰原则:monthSalary 除了第一个单词以外,后面的单词首字母都大写
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则:Man,GoodMan
- 方法名:首字母小写和驼峰原则:run(),runRun()
运算符
-
Java语言支持如下运算符:优先级()
优先级 运算符 简介 结合性 1 [ ] 、.、( )方法调用,属性获取 从左向右 2 !、~、 ++、 -- 一元运算符 从右向左 3 * 、/ 、% 乘、除、取模(余数) 从左向右 4 + 、 - 加减法 从左向右 5 <<、 >>、 >>> 左位移、右位移、无符号右移 从左向右 6 < 、<= 、>、 >=、 instanceof 小于、小于等于、大于、大于等于, 对象类型判断是否属于同类型 从左向右 7 == 、!= 2个值是否相等,2个值是否不等于。 下面有详细的解释 从左向右 8 & 按位与 从左向右 9 ^ 按位异或 从左向右 10 ! 按位或 从左向右 11 && 短路与 从左向右 12 || 短路或 从左向右 13 ?: 条件运算符 从右向左 14 =、 += 、-= 、*= 、/=、 %=、 &=、 |=、 ^=、 <、<= 、>、>= 、>>= 混合赋值运算符 从右向左 -
算术运算符:+ - * / % ++ --
public class HelloWorld {
int ia=1;
int ib=2;
double da=4;
public static void main(String[] args) {
long longNum = 231321;
int ia = 21;
short sa = 10;
byte ba = 4;
int ib = 3;
System.out.println(ba++);
System.out.println(++ba);
System.out.println(longNum+ia+sa+ba);
/**算术中有long存在计算结果为long类型
其余计算结果都为int类型
ib++是先赋值再加1
++ib是先加1再赋值
*/
System.out.println(ia+sa+ba);
System.out.println(sa+ba);
}
}+ 赋值运算符:= + 关系运算符:> < >= <= == != instanceof + 逻辑运算符:&& || ! ```java public class HelloWorld { public static void main(String[] args) { //与(and)或(or) 非(unless) boolean a = true; boolean b =false; System.out.println("a && b :"+(a&&b)); System.out.println("a && b :"+(a||b)); System.out.println("a && b :"+(!a&&!b)); } }-
短路运算
//短路运算 int c = 5; //c<4是false,直接结束运算,后面c就没有++ boolean d = (c<4)&&(c++<4); System.out.println(d); System.out.println(c); -
条件运算符: ?:
// x ? y : z int score = 80; String flag = score >40 ?"true":"false"; -
字符串连接符:+
int a = 1; int b = 2; System.out.println(a+b); /*字符串在前,后面的只是拼接 字符串在后面,前面进行加法 */ System.out.println(" "+a+b); System.out.println(a+b+" "); -
扩展运算符:+= -= *= /=
a+=b; //a=a+b a-=b; //a=a-b
-
Math类数学公式
-
幂运算:pow
包机制
-
用于区别类名的命名空间
-
包语句的语法格式为:
package pkg1[.pkg2[. pkg3...]]; -
一般用公司域名倒置作为包名:
-
为了能够使用某一个包的成员,我们需要再Java程序中明确导入该包。
- 使用"import"完成该功能
- 使用其他文件夹的类名,方法,头文件import引入
import package1[.package2...].(classname|*); -
创建package
例如com.yexin,自动生成二级文件夹

浙公网安备 33010602011771号