Java知识点总结 (基本语法)
@(Java知识点总结)[Java, Java基本语法]
@(Java开发)[Java基本语法]
[toc]
Java特点
简单自然
平台可移植性
支持函数式编程
JIT 编译
更好的并发编程
健壮安全
执行方式
编译:将源代码(.java)处理成字节码(.class)
解释:将字节码加载到JVM中执行(JIT编译)
程序结构
package:方便管理类,避免命名冲突
import:除java.lang包 其他包中的内容需要先导入
class/interface/enum/@interface:
1. 被public修饰的类/接口/枚举/注解最多只有一个
2. 建议:一个源文件中只写一个类/接口/枚举/注解
注释:
1. 行注释 //
2. 多行注释(块注释) /* xxx */
3. 文档注释 /** xxxx */
@author
@since
@param
@return
@throws
@see
@deprecated
关键字
关键字:有特殊含义的单词
基本数据类型
byte、short、int、long、float、double、char、boolean
类和接口
class、interface、extends、implements、abstract、final、package、import、this、super、new、instanceof、strictfp
方法
return、void、native、static
方法修饰符
public、protected、private
分支和循环
if、else、switch、case、default、while、do、for、break、continue
异常机制
try、catch、finally、throw、throws
多线程
synchronized、volatile
序列化
transient、Java 5+、assert、enum
保留字
const、goto
标识符
标识符:给类型(类、接口、枚举、注解)、包、方法、属性、变量等起的名字
1. 字母(Unicode字符)、数字、下划线、$、数字不能开头
2. 不能使用关键字做标识符
3. 大小写敏感
4. 见名如意
5. 驼峰命名法
命名类型时每个单词首字符大写
命名方法、变量时第一个单词小写,从第二个单词尅是每个单词首字母大写
命名包是全小写
命名常量是全大写
运算符
(1)算术运算符
+
-
*
/
%:任何整数模2,不是0就是1,所以只要改变被模数就可以实现开关运算符
++:自增
--:自减
(2)赋值运算符
=
+=
-=
*=
/=
%=
(3)比较运算符
==:运算完的结果,要么是true,要么是false
!=
<
<=
>
>=
(4)逻辑运算符
&:两边只要有一个为false,结果就是false
|:两边只要有一个true,结果就是true
&&:短路与,只要右边是false,左边就不再参与运算了,结果为false
||:短路或,只要右边是true,左边就不再参与运算了,结果为true
!
(5)位运算符
&
|
^
~
<<
>>
>>>:无符号右移
(6)其他运算符
x?y:z; : 三元条件运算符。先计算x的值,如果x为true,则整个三目运算的结果为y,否则为z。经常用来代替简单的 if...else... 判断
+:字符串连接符。System.out.println("5"+4); // 54
new
instanceof
():强制类型转换
[]:下标运算符
变量与常量
常量:是在程序中的不会变化的数据
变量:其实就是内存中的一个存储空间,用于存储数据。只要是数据不确定的,就定义变量。
作用:方便于运算。因为有些数据不确定,所以确定该数据的名词和存储空间
特点:变量空间可以重复使用
作用域:从变量定义的位置开始,到该变量所在的那对大括号结束。
生命周期:变量从定义的位置开始就在内存中活了,变量到达它所在的作用域的时候就在内存中消失了;
数据类型
1、基本数据类型
boolean
byte、char、short(这三个平级)——>int——>float——>long——>double
自动类型转换:从低级别到高级别,系统自动转的
强制类型转换:把一个高级别的数据类型赋给一个级别比它低的变量或者表达式中类型提升(计算结果超出范围)
表达式中类型提升问题:
2、引用数据类型
数组、类、接口
程序逻辑
顺序结构
从上至下执行
分支结构(选择结构)
if....else....
switch....case....default....
(1)switch只能做等值判断
(2)switch后面的小括号中的变量只能是int,以及自动转为int的byte、char、short;JDK7以后可以使字符串
(3)default可以写在switch结构中的任意位置,如果写在第一行,不管expression与case中的value是否匹配,程序会从default开始执行,直到第一个break出现。
(4)当判断固定个数的值的时候,可以使用if,也可以使用switch。建议使用switch,效率相对较高。
switch(变量){
case 值:要执行的语句;
break;
......
default:要执行的语句;
}
执行过程:小括号中的变量的值依次和case后面的值进行比较,和哪个case的值相同了,就执行哪个case后面的语句,如果没有相同的,则执行default后面的语句;
注意:break是可以省略的,如果省略了就一直执行到遇到break位置(case穿透);
(5)当判断数据范围,获取判断运算结果boolean类型,需要使用if。
(6)当某些语句需要执行很多次,就使用循环结构
while和for可以进行互换。
区别在于:如果需要定义变量控制循环次数。建议使用for。因为for循环完毕,变量在内存中释放。
(7)break、continue,return区别
break:
作用于switch时,不再执行下面的语句。
作用于循环语句时,表示跳出当前所在循环。要跳出嵌套中的外部循环,只要给循环起个名字即可,这个名字称之为标号。
continue:
只作用于循环结构,继续循环用的。表示结束本次循环,继续下次循环。
return:
结束当前执行的方法
循环结构
while
do....whiel
for(初始条件;循环控制条件;循环控制条件)
for-each
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。