JavaSE基础
一、注释
1.单行注释
//单行注释
2.多行注释
/*多行注释
多行
注释*/
3.文档注释JavaDoc
/**
*@Author timoraty
*@version 1.0
*@since 1.8
*/
- 使用idea生成Java文档
- 使用命令行生成Java文件 javadoc java文件
二、标识符
标识符:Java所有的组成部分都需要名字、类名、变量名以及方法名都被称为标识符
+ 所有的标识符都应该以字母(A-Z或者a-z)、美元符($)、或者下划线开始。后面可以加数字
+ 不能用关键字作为变量名或方法名
+ 标识符是大小写敏感的
关键字:在JAVA中目前一共有53个关键字:其中由51+2个保留字=53个关键字
1、JAVA的保留关键字(2个)
const——常量,常数:用于修改字段或局部变量的声明。
goto——转到:指定跳转到标签,找到标签后,程序将处理从下一行开始的命令
2、访问修饰符的关键字(3个)
public (公有的):可跨包
protected (受保护的):当前包内可用
private (私有的):当前类可用
3、定义类、接口、抽象类和实现接口、继承类的关键字、实例化对象(6个)
class (类):public class A(){}花括号里是已实现的方法体,类名需要与文件名相同
interface (接口):public interface B(){}花括号里有方法体,但没有实现,方法体句子后面是英文分号;结尾
abstract (声明抽象):public abstract class C(){}介于类与接口中间,可以有,也可以没有已经实现的方法体
implemenst (实现):用于类或接口,实现接口public class A interface B(){}
extends (继承):用于类继承类public class A extends D(){}
new (创建新对象):A a=new A();A表示一个类
4、包的关键字(2个)
import (引入包的关键字):当使用某个包的一些类时,仅需要类名,然后使用ctrl+shift+o或者选定类名(类或属性或方法)按住ctrl+单击,即可自动插入类所在的包
package (定义包的关键字):将所有相关的类放在一个包类以便查找修改等
5、数据类型的关键字(12个)
byte (字节型):8bit
char (字节型):16bit
boolean (布尔型):–
short (短整型):16bit
int (整型):32bit
float (浮点型):32bit
long (长整型):64bit
double (双精度):64bit
void (无返回):public void A(){}其他需要反回的经常与return连用
null (空值)
true (真)
false (假)
6、条件循环(流程控制)(12个)
if (如果) :if(条件语句{执行代码}如果条件语句成立,就开始执行{}里面的内容
else (否则,或者) :常与if连用,用法相同:if(…){…}else{…}
while (当什么时候):while(条件语句){执行代码}
for(满足三个条件时):for(初始化循环变量;判断条件;循环变量值{}
switch (选择结构):switch(表达式){case 常量表达式1:语句1;…case 常量表达式2;语句2;default:语句;}default就是如果没有匹配的case就执行它,default并不是必须的。case后的语句可以不用大括号。
case (匹配switch的表达式里的结果) :同上
default (默认): default就是如果没有匹配的case就执行它, default并不是必须的
do (运行) :通长与while连用
break (跳出循环):直接跳出循环,执行循环体后的代码
continue (继续) : 中断本次循环,并开始下一轮循环
return (返回) :return 一个返回值类型
instanceof(实例):一个二元操作符,和==、>、<是同一类的。测试它左边的对象是否是它右边的类的实例,返回boolean类型的数据
7、修饰方法、类、属性和变量(9个)
static(静态的):属性和方法都可以用static修饰,直接使用类名、属性和方法名。只有内部类可以使用static关键字修饰,调用直接使用类名、内部类类名进行调用。static可以独立存在
final(最终的不可被改变):方法和类都可用final来修饰;final修饰的类是不能被继承的;final修饰的方法是不能被子类重写。常量的定义:final修饰的属性就是常量
super(调用父类的方法):常见public void paint(Graphics g){super.paint(g);…}
this(当前类的父类的对象):调用当前类中的方法(表示调用这个方法的对象)this.addActionListener(al):等等
native(本地)
strictfp(严格,精准)
synchronized(线程,同步):一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块
transient(短暂)
volatile(易失)
8、错误处理(5个)
catch(处理异常):(1)try+catch 程序流程是:运行到try块中,如果有异常抛出,则转到catch块去处理。然后执行catch块后面的语句
(2)try+catch+finally 程序流程是:运行到try块中,如果有异常抛出,则转到catch垮,catch块执行完毕后,执行finally块的代码,再执行finally块后面的代码。如果没有异常抛出,执行完try块,也要去执行finally块的代码。然后执行finally块后 面的语句
(3)try+finally 程序流程是:运行到try块中,如果有异常抛出,则转到finally块的代码。
try(捕获异常)
finally(有没有异常都执行)
throw(抛出一个异常对象):一些可以导致程序出问题,比如书写错误,逻辑错误或者是api的应用错误等等。为力防止程序的崩溃就要预先检测这些因素,所以java使用了异常这个机制
在java中异常是靠“抛出” 也就是英语的“throw”来使用的,意思是如果发现到什么异常的时候就把错误信息“抛出”
throws(声明一个异常可能被抛出):把异常交给他的上级管理,自己不进行异常处理
9、其他(2个)
enum(枚举,列举,型别)
assert(断言)
三、数据类型
1.强类型语言
Java是强类型语言,要求变量严格符合规定,变量先定义后使用
2.两大数据类型
基本类型
-
数值类型
-
整数类型
-
byte :占1个字节,范围-128-127
-
short :占2个字节,范围-32768-32767
-
int :占4个字节,范围-2147483648-2147483647
-
long :占8个字节,范围-9223372036854775808-9223372036854775807
long num4=30L;
-
-
浮点类型
-
float :占4个字节
float num=50.1F
-
double :占8个字节
-
浮点数是离散的,存在误差,最好完全避免使用浮点数进行比较
-
-
字符类型
-
char :占两个字节
//所有的字符本质还是数字 public class Hello { public static void main(String[] args) { char c1='a'; char c2='中'; System.out.println(c1); System.out.println((int)c1); System.out.println(c2); System.out.println((int)c2); } } //转义字符 //\t 制表符 //\n换行 //...
-
-
-
boolean类型 :占一个字节且只有true和false
引用类型
- 类
- 接口
- 数组
3.字节
-
位 :是计算机内部数据存储的最小单位 11001100是一个八位二进制数
-
字节 :是计算机中数据处理的基本单位,习惯上用大写B表示
-
1B(byte字节) = 8bit(位)
-
字符:是指计算机中使用的字母、数字、字和符号
-
转化:1B=8b 1024B=1KB 1024KB=1M 1024M=1G
4.进制
public class Hello {
public static void main(String[] args)
{
int i0=0b1010;//二进制
int i=10; //十进制
int i2=010; //八进制
int i3=0x10;//十六进制
System.out.println(i0);
System.out.println(i);
System.out.println(i2);
System.out.println(i3);
}
}
四、类型转换
byte,short,char->int->long->float->double
1.强制转换
//高位--低位
public class Hello {
public static void main(String[] args)
{
//jdk7新特性,数字之间可以用下划线分割
int num=1000_1000
int i=127;
byte b=(byte)i;
//转化的时候要防止内存溢出,比如此时i=128就不行,因为byte的范围只能到127
System.out.println(i);
System.out.println(b);
//转化的时候要注意精度问题
System.out.println((int)23.7);
System.out.println((int)-23.7f);
}
}
2.自动转化
//低位--高位
public class Hello {
public static void main(String[] args)
{
int i=127;
double b=i;
System.out.println(i);
System.out.println(b);
}
}
/*
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
*/
五、变量
-
可以变化的量
-
Java是一种强类型的语言,每个变量都必须声明其类型
-
Java变量是程序中最基本的储存单元,其要素包括变量名,变量类型和作用域
-
作用域(类变量、实例变量、局部变量)
public class Variable { //类变量 static 从属于类 static double salary=2500; //实例变量:从属于对象 //如果不进行初始化,这个默认值为0 0.0 false //除了基本类型剩下的都是null String name; int age; public static void main(String[] args) { //局部变量:必须声明和初始化值 int i=10; } }
- 命名规则
- 所有变量、方法、类名:见名知义
- 类成员变量:首字母小写和驼峰原则(除了第一个单词外后面的单词都大写):monthSalary
- 局部变量:首字母小写和驼峰原则
- 常量:大写字母和下划线:MAX_VALUE
- 类名:首字母大写和驼峰原则
- 方法名:首字母小写和驼峰原则
- 命名规则
六、常量
-
初始化之后就不会再变动的值
-
常量名一般为大写字符
//修饰符不存在先后顺序 final static double PI=3.14;
七、运算符
-
算术运算符 + - * / % ++ –
//有long输出结果为long,否则都为int public class Count{ public static void main(String[] args){ long a=1231313133123L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//输出类型为long System.out.println(b+c+d);//输出类型为int System.out.println(c+d);//输出类型为int } }
-
赋值运算符 =
-
关系运算符 < > >= <= == !=
-
逻辑运算符 && || !
-
位运算符 & | ^ ~ >> << >>>
public class Variable { public static void main(String[] args){ int A=0b00111100; int B=0b00001101; // A&B=0000 1100 // A|B=0011 1101 // A^B=0011 0001 // ~B=1111 0010 System.out.println(A&B); System.out.println(A|B); System.out.println(A^B); System.out.println(~B); // 2*8=16 System.out.println(2<<3); } }
-
条件运算符 ?:
-
扩展赋值运算符 += -= *= /=
-
字符串连接符+
public class Variable { public static void main(String[] args){ int a=10; int b=20; System.out.println(""+a+b);//输出1020 System.out.println(a+b+"");//输出30 } }