一.Java环境搭建
1、 JRE(Java运行环境)
Java程序运行时所需要的环境
2、 JVM(java虚拟机)
现象:“一次编译,处处运行”
原理:不同的操作系统安装不同的JVM,保证Java程序接口的统一,屏蔽了底层操作系统的区别。
特点:Java程序的跨平台性
3、 JDK(Java开发工具)
定义:Java开发人员所用到的开发工具
关系:JDK>JRE>JVM
JDK安装过程:TODO
使用:1)环境变量的配置
环境变量:该变量属于操作系统级别,安装在该操作系统上面的所有软件都可以访问该变量。(系统变量、用户变量)
JAVA_HOME:JDK的安装路径
PATH:%JAVA_HOME%\bin →%%表示获取中间环境变量的值
4、 第一个Java程序
验证环境:cmd>Java
HelloWorld.java
5、 常见的Dos命令
cd:切换目录
md:创建目录
rd:删除目录
del:删除文件
dir:罗列当前目录下所有的文件和mulu
ping:查看网络连接状态
ipconfig:查看当前ip配置
netstat:查看开放的端口
telnet:查看远程服务器的端口
cls:清屏
6、 Java程序的运行步骤
1)编写源码 →*.java
2)编译:cmd>javac HelloWorld.java
3)运行:cmd>java HelloWorld
7、 Java 中的注释
1)单行注释 →//
使用场景:对属性和变量的解释说明,对一行代码进行说明
举例:int number; //个数
2)多行注释 →/**/
使用场景:对方法或者代码块进行说明
3)文档注释 → /***/
使用场景:对文档进行说明,比如一个.java文件,一般放到文件的开头,一般是对该文件中的类进 行说明。
特点;Java独有
8、 垃圾回收机制
调用finalize();方法
二、JAVA基础语句
标识符
定义:凡是自己起名字的地方
规则:
有字母、数字、$、_组成 有字母、数字、$、_组成
不能是数字开头
不能使用关键字
严格区分大小写
中间不能出现空格
见名知意
Java中常见的命名规则
1)包名:xxxyyyzzz(多个单词组成都小写)
2)类名和接口名:XxxYyyZzz
3)方法和变量名:xxxYyyZzz
4)常量:XXXYYYZZZ或者XXX_YYY_ZZZ
定义:被Java语言赋予特定含义的单词
特点:小写
Java中的关键字
a) 数据类型:byte、short、int、long、float、char、boolean、class、interface、void
b) 流程控制语句:if、else、switch、case、default、break、continue、return、while、do while、for
c) 权限修饰符:public、private、protected、
d) 异常:try、catch、finally、throw、throws
e) 类:new、this、super、instanceof、static、final、abstract、extends、implements、import、package、synchronized(同步)
f) 值:true、false、null
g) 其他:assert(断言)、native、strictfp、transient、volatile
h) 保留关键字:goto、const
数据类型和数据转换
1、 分类:基本数据类型、引用数据类型(类、接口、数组)
2、 基本数据类型:
整型(byte:1、short:2、int:4、long:8)
浮点型(float:4、double:8)
字符型(char:2)
布尔型(boolean:1)
默认类型:整型默认为int;浮点型默认为double
数据赋值:long a=100000L;float f = 0.5f;
数据类型转换
-隐式转换:
a) 规则:有容量小的向容量大的转;整型碰到浮点转浮点;boolean不参与转换;byte、short、char碰到先转成int类型;所有类型碰到字符串默认转换成字符串
b) 显式转换:
场景:从容量大的类型转换成容量小的类型
使用方法:(int)a = (int)1.5;
运算符
a) 算数运算符
+、-、*、/、%、++、--
用法:5/2=2;5.0/2=2.5;5%2=1;-5%2=-1;5%-2=1
b=++a:先自增,后赋值 --a同理
b=a++:先赋值,后自增 a--同理
b) 赋值运算符
=、+=、-=、*=、/=、%=
作用:变量本身参与运算,并将运算结果赋值给本身 a+=1 a=a+1
a=3
a=a++ → a=3
a=++a → a=4
a+=a++ a=a+a++ → a=6
a+=++a a=a+(++a) → a=7
c) 比较运算符 >、<、==、<=、>=、!=
d) 逻辑运算符
e) &、&&、|、||、!
f) &(非短路与)、&&(短路与)、|(非短路或)、||(短路或)
g) 位运算符
<<(左移)、>>(右移)、>>>(无符号右移)、&、|、^
2<<3 2*(2^3)=16
3>>1 3/(2^1)=商1余1
h) 三目运算符
格式:布尔表达式?A:B;如果布尔表达式为true,则返回A,否则返回B
题目:分数分级
Grade = Score>=90?’A’(score>=60?’B’:’C’)
常见题:&与&&有什么区别?
& 左右两边都参与运算
&& 一边参与运算
短路与运算效率高,推荐使用。
常见面试题:实现两个整数变量的交换
方法一:c=a;a=b;b=c;
方法二:a=a+b; b=a-b; a=a-b
方法三:a=a^b; b=a^b; a=a^b
变量和常量
a) 变量的格式:类型 变量名=初始值 int num1 = 10;
b) 变量的初始值:
i. 局部变量不会自动赋初值
ii. 成员变量会赋初值。整型变量:0,浮点型:0.0,字符型:’\u000’,布尔型:false
c) 变量的使用:局部变量直接用变量名;成员变量使用时一般(对象名.变量名)
d) 变量的作用域:局部变量只作用与包含该变量的{}中;
形参是局部变量,作用与方法体;成员变量与访问控制修饰符相关
形参:定义在方法列表中的参数
实参:实际传入的参数
e) 常量:字面值常量(直接使用5,1.5,“hello”)、自定义常量(final float PI =3.14f)接口中成员变量都是常量;枚举中也是;
常见面试题:一下语句有没有问题
int num 1;
System.out.println(num1);
有问题,局部变量没有赋初值