一、初识Java
1.Java既属于编译型语言,又属于解释型语言
编译型语言:在程序执行之前,先进行编译,下次运行的时候不需要重新编译
解释型语言:运行时才进行编译,每次运行时都要进行编译,所以速度要比编译型慢
而Java的编译原理是先把Java源码编译成字节码,通过虚拟机把字节码解释成机器码, 然后再执行机器码。通过Java的编译原理和编译型语言的定义及解释型语言的定义可 以看的出来,Java语言既是编译型语言也是解释型语言。
2.Java是如何实现跨平台的
每个平台都有相应的JVM(java虚拟机),通过JVM将字节码进行解释(JVM本身并不具有跨平台性)
3.JDK,JRE,JVM
JDK:Java Development Kit (Java开发工具包)
JRE:Java Runtime Environment (Java运行环境)
JVM:Java Virtual Machine(Java虚拟机)
JDK包含JRE,JRE包含JVM
4.Java运行环境配置
JAVA_HOME:JDK安装目录
PATH:%JAVA_HOME%\bin;
CLASSPATH:.;%JAVA_HOME%\lib; //若配置了classpath,可在任意目录下运行; 若没有配置classpath,则需cd到项目空间下的bin目录运行;运行时,优先classpath, 然后是当前目录
编译命令:javac java源文件
运行命令:java class文件(带包名,不带后缀)
二、Java的基础语法
1.关键字
1、用于类和接口的声明:class, extends, implements, interface
2、包引入和包声明:import, package
3、数据类型:byte, boolean, char, double, int, long, float, short
4、某些数据类型的可选值:flase, ture, null
5、流程控制:break, case, continue, default, do, else, for, if, return, switch, while
6、异常处理:catch, finally, throw, throws, try
7、修饰符:abstract, final, native, private, protected, public, static, synchronilzed, transient, volatitle
8、操作符:instanceof
9、创建对象: new
10、引用:this, supper
11、方法返回类型:void
12、保留字:const, goto
2.标识符
Java中的包、类、方法、参数、变量的名字,可以由任意顺序的大小写字母、数字、下划线(_)、美元符号($)组成,但不能以数字开头,不能是Java中的保留关键字。
3.变量
4.常量
5.注释
1、单行注释
在注释内容前面加“//”,格式为:
代码; //注释内容
2、多行注释
以斜杠加星号开头,以星号加斜杠结尾。
/*
*注释内容
*/
3、文档注释
以斜杠加两个星号开头,以一个星号加斜杠结束。
/**
*
* @author admin
*
*/
三、数据类型
1.原始类型
a)布尔值 boolean
b)数值
i.整型(默认类型为int)
1.byte(8位)
2.short(16位)
3.int(32位)
4.long(64位)
5.char(16位)
ii.浮点型(默认类型为double)
1.Float(32位)
2.Double(64位)
2.引用类型
a)class(类)
b)interface(接口)
c)enum(枚举)
d)array(数组)
3.Null类型
Java基础数据类型不具有面向对象的特点,但是Java提供了八个包装类,能够把基本数据 类型转化为引用数据类型。JDK5之后,包装器类和基本数据类型之间可以直接转换,称为 自动的装箱拆箱
四、流程控制
1.if...else(可以嵌套)
if(条件){
语句;
}else if(条件){
语句;
}else{
语句;
}
2.Switch(执行到break才会跳出switch,否则会一直执行下去)
switch(条件){
case 条件1:
语句;
case 条件2:
语句;
case 条件3:
语句;
default:
语句;
break;
}
3.While(先判断,再执行)
while(条件){
语句;
}
4.do...while(先执行,再判断)
do{
语句;
}while(条件)
5.for
for(初始条件;循环体;迭代体){
语句;
}
foreach
for(元素类型t 元素变量x : 遍历对象obj){
引用了x的java语句;
}
五、数组
a)声明
i.int[] arr;
ii.int arr[];
b)初始化
i.静态初始化,直接赋值 int[] arr = {1,2,3}
ii.动态初始化 int[] arr = new int[length];
c)length属性,下标
d)常用方法
i.sort();//排序 默认使用快速排序
ii.toString();//转化为字符串
iii.copyOf(arr,length); copyOfRange(arr,brgin,end);//拷贝数组
iv.equals(arr1,arr2)//判断两个数组是否相等
v.fill(arr,value) //填充
e)
六、字符串
a)String
i.声明
1.String str =“hello”;
2.String str = new String();
ii.主要工具类
1.length();//获取字符串长度,返回值为int
2.charAt(2);//获取下标为2处字符的值
3.equals(str2)//判断两个字符串的内容是否相同,返回布尔值,其中equalsIgnoreCase(str2)可以忽略大小写的影响
4.compareTo(str2);//比较两个字符串的大小,返回差值的一个整数
5.startsWith(str)
6.endsWith(str)//判断是否以指定字符串开始结束
7.substring(begin,end)//截取子字符串begin(包含)至end(不包含)
8.indexOf(str1)//第一次出现str1的下标,返回值为int,不存在返回-1,lastIndexOf 用来表示最后一次出现的下标
9.concat(str2)//连接两个字符串
10.replace(oddstr,newstr)//替换字符串
11.split(string)//按指定的字符串进行拆分
12.toLowerCase()toUpperCase()//大小写转化
13.trim()//去除前后空格,trimLeft(),trimRight()去除左边或右边的空格
iii.特点
String是一个对象不是基本类型,属于字符串常量,是不可变对象,一旦创建就不能修改它的值,对于已存在的String对象操作都是创建一个新的String,并赋值新的值
b)StringBuffer
i.声明
StringBuffer sBuffer=new StringBuffer();
ii.主要工具类
1.append(str)//连接字符串
2.intsert(int,string)//在第n位置插入字符串
3.delete(begin,end)//删除子字符串
4.reverse()//字符串反转
iii.特点
字符串变量 加锁 线程安全
c)StringBuilder
i.声明
StringBuilder sBuilder=new StringBuilder();
ii.主要工具类
1.append(str)//连接字符串
2.intsert(int,string)//在第n位置插入字符串
3.delete(begin,end)//删除子字符串
4.reverse()//字符串反转
iii.特点
字符串变量不加锁 线程非安全