Java基础01
Java基础
注释
什么是注释?
- ,平时我们编写代码,在代码量比较少的时候,我们还可以看懂自己写的,但是当项目结构复杂起来的时候,我们就需要用到注释了
- 注释不会被编译执行,它是写给编写代码的人看的
- 在编码过程中必须养成良好的习惯,要写注释
Java中的三种注释
- 单行注释 //这里写注释
- 多行注释 / * 这里写注释 */
- 文档注释 /** 这里写注释 */
- 示例:
/**
* 这是文档注释
* @author lichenghua
* 程序猿入门必备helloworld
*/
public class HelloWorld {
/*
这是多行注释
主方法是程序执行的入口
*/
public static void main(String[] args) {
// 输出Hello,World!
System.out.println("Hello,World!");
}
}
标识符和关键字
标识符
什么是标识符?
- Java中的所有组成部分都需要名字.类名,变量名和方法名都被称为标识符
标识符的命名规则
-
所有的标识符只能用字母,数字,下划线和美元符号组成,并且只能以字母,美元符号和下划线开头
-
Java中的关键字不能用作标识符
-
标识符对大小写敏感
-
合法标识符举例:name,$age,_sex, _jerry1
-
public class Demo01 { public static void main(String[] args) { // 声明两个变量tom和jerry,也就是标识符 String tom = "汤姆"; String jerry = "杰瑞"; System.out.println(tom+"和"+jerry); } } -
非法标识符举例:123dog,-salary,#tom,@qq
-
也可以使用中文命名标识符,但是不建议使用
关键字
Java中的关键字
| abstract | assert | boolean | break | byte |
|---|---|---|---|---|
| case | catch | char | class | const |
| continue | deafult | do | double | else |
| enum | extends | finally | float | final |
| for | goto | if | implements | import |
| instanceof | int | interface | long | native |
| new | package | private | protected | public |
| return | strictfp | short | static | super |
| switch | synchronized | this | throw | throws |
| transient | try | void | volatile | while |
Java数据类型
什么是字节?
- 位(bit):是计算机内部数据存储的最小单位,11001100是一个八位二进制数
- 字节(byte):是计算机中数据处理的基本单位,一般用B来表示
- 1字节=8位
- 字符:'是指计算机中使用的数字,字母,字和符号
- 1bit标识1位
- 1B表示1字节,1B=8bit
- 1024B=1kB
- 1024kB=1M
- 1024M=1G
- 1024G=1TB
数据类型
强类型语言
- 要求变量的使用要严格符合规定,所有的变量都必须先定义后使用,Java属于强类型语言
Java的数据类型分类
基本类型
-
boolean 布尔型
-
char 字符型
-
byte 字节型
-
short 短整型
-
int 整形
-
long 长整型
-
float 单精度浮点型
-
double 双精度浮点型
-
类型名称 内存占位 取值范围 对应的引用类型 boolean 1字节(8位) true/false Boolean byte 1字节(8位) -128~127 Byte char 2字节(16位) 一个字符 Character short 2字节(16位) -32768~32767 Short int 4字节(32位) -2147483648~2147483647 Integer float 4字节(32位) -2147483648~2147483647 Float long 8字节(64位) -21亿左右~21亿左右 Long double 8字节(64位) -21亿左右~21亿左右 Double
public class Demo02 {
public static void main(String[] args) {
//整数部分
byte num1 = 10;
int num2 = 20;//最常用
short num3 = 30;
long num4 = 40L;//long类型需要在后面加L
// 小数部分
float num5 = 3.14F;//float类型需要在后面加F
double num6 = 3.1415926;
// 字符型
char c = '中';
//布尔类型
boolean b = true;
}
}
引用类型
- 类
- 接口
- 数组
面试拓展
-
浮点数是有限,离散,舍入误差,大约,接近但不等于的,用于比较会出现问题,所以要尽量避免使用浮点数进行比较.银行业务用数学工具类BigDecimal.
-
float f1 = 0.1F; double f2 = 1.0/10; System.out.println(f1==f2);//此处的比较结果是false float f3 = 123456789012345F; float f4 = f3+1; System.out.println(f3==f4);//此处的比较结果是true -
任何字符的底层本质都是数字
-
String类型的变量以及String类型的实例变量的比较问题
-
boolean b = true; String s1 = new String("你好"); String s2 = new String("你好"); System.out.println(s1==s2);//此处的比较结果是false System.out.println(s1.equals(s2));//此处的比较结果是true String s3 = "hello"; String s4 = "hello"; System.out.println(s3==s4);//此处的比较结果是true System.out.println(s3.equals(s4));//此处的比较结果是true
类型转换
-
由于Java是强类型语言,所以在进行某些运算的时候需要用到类型转换
低------------------------------------------>高 byte-->short,char-->int-->long-->float-->double -
运算中,不同类型的数据需要先转换为同一类型,然后才能进行运算
-
强制类型转换 高-->低,例如int i=10;byte b=(byte)i;
-
自动类型转换 低-->高,不需要做任何事情,计算机自动完成
-
类型转换需要注意以下事项:
1.不能对布尔值进行转换 int i = 10; boolean flag = i;//不允许 2.不能把对象类型转换为不相干的类型 3.在把高容量转换到低容量时,进行强制转换 int i = 100; short s = (short)i; 4.转换的时候可能存在内存溢出或者精度问题 int i = 200; byte b = (byte)i;//内存溢出,得到不正确的随机数 //精度问题 System.out.println((int)25.7);//输出25 System.out.println((int)-25.75F);//输出-25
变量
- 变量是什么:变量就是可以变化的量
- Java是一种强类型语言,每个变量都必须声明其类型
- Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域
- 注意事项:
- 每个变量都有类型,类型可以是基本类型,也可以是引用类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每一次声明都必须以分号结束
变量作用域
-
类变量 类变量就是从属于类的变量,一般为静态变量,使用static修饰,其作用域是整个类的范围
-
实例变量 实例变量是从属于对象的变量,它的作用域和生命周期跟实例的相同,随着实例的创建而创建,实例的消亡而消亡.实例变量可以初始化也可以不初始化,没有赋值时一般为变量类型的默认值.布尔类型的默认值是false,基本数据类型以外的类型的默认值是null
-
局部变量 即其作用域作用于局部的变量,一般位于局部的方法中,使用时必须声明和初始化值
-
public class Variable{ static int i = 10;//类变量 String name = "lichenghua";//实例变量 public static void main(String[] args){ int a = 5;//局部变量 } }
常量
-
常量(Constant):初始化(initialize)后不能再修改它的值,一般使用final修饰
-
常量是一种特殊的变量,它的值一旦被设定,在程序运行过程中不允许被修改
-
常量名一般使用大写字符
-
//声明规则 final 常量名 = 值; final int MAX_AGE = 100;
变量的命名规范
- 所有变量,方法和类名:见名知意
- 类成员变量:首字母小写和驼峰原则 monthSalary
- 局部变量:首字母小写和驼峰原则 lastName
- 常量:大写字母和下划线 MAX_VALUE
- 类名:首字母大写和驼峰原则 HelloWorld
- 方法名:首字母小写和驼峰原则 run(),reRun()
运算符
-
Java语言支持以下运算符:
-
算术运算符:+(加)、-(减)、*(乘)、/(除)、%(模运算,即取余数)、++(自增)、--(自减)
-
赋值运算符:=
-
关系运算符:>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)、instanceof(用于比较两个对象是否是同一类型)
-
逻辑运算符:&&(与)、||(或)、!(非)
-
位运算符:&(与)、|(或)、^(异或)、~(非)、>>(按位除2)、<<(按位乘2)
-
A = 0011 1100 B = 0000 1101 A&B = 0000 1100 同1为1,其余全为0 A|B = 0011 1101 有1为1,其余全为0 A^B = 0011 0001 相同为0,不同为1 ~B = 1111 0010 1取反为0,0取反为1 -
条件运算符:?:
-
扩展赋值运算符:+=(相加后赋值)、-=(相减后赋值)、*=(相乘后赋值)、/=(相除后赋值)
-
-
位运算符面试题:
-
2*8 = 16 怎样执行速度最快? 答:按位运算 2<<3
-
-
字符串与整形变量的拼接优先级问题:
-
//谁在前按谁的类型运算执行,加括号除外 System.out.println(10+20+"abc"); //输出30abc System.out.println("abc"+10+20); //输出abc1020 System.out.println("abc"+(10+20)); //输出abc30
-
包机制
- 为了更好的组织类,Java提供了包机制,用于却别类名的命名空间
- 一般使用公司域名倒置作为包名
- 使用import导入其他包
命令生成一个类的Javadoc文档
- javadoc -encoding UTF-8 -charset UTF-8 类名

浙公网安备 33010602011771号