JavaSE基础知识大全超完整版67页Word下载.docx
《JavaSE基础知识大全超完整版67页Word下载.docx》由会员分享,可在线阅读,更多相关《JavaSE基础知识大全超完整版67页Word下载.docx(74页珍藏版)》请在冰豆网上搜索。
有的话,点击“编辑”,在当前变量值里添加内容%JAVA_HOME%\bin;
%JAVA_HOME%\jre\bin,注意内容之间中“;
”分隔。
四、验证
点击“开始”à
“运行”,输入“cmd”或者win+R快捷键输入“cmd”,在DOS环境
下输入java-version
返回JDK的安装版本,即表示JDK安装配置成功。
eclipse使用说明
下载eclipse压缩包
解压压缩包
启动eclipse
解压完毕后即可使用,进入文件夹,点击eclipse.exe启动eclipse;
设置工作空间目录
第一次打开要设置工作环境,位置可自己指定;
创建一个项目
创建一个项目:
选择file--New--javaProject。
若没找到javaProject,点击other,
弹出窗口,找到javaProject。
输入项目名,项目名可任意,一般项目名命名规范:
全部小写;
STEP05:
创建java文件
完成项目的创建后,在左侧菜单选择test项目,右键--new--class
Java文件的命名规则:
首字母大写,
STEP06:
编写代码
STEP07:
运行
在需要运行的java文件中,右键à
Runasà
javaapplication
STEP08:
控制台打印运行结果
控制台打印出运行文件的执行结果。
JAVA基础
1基础
1.1关键字
byte
short
int
long
float
double
char
boolean
do
while
for
break
continue
if
else
switch
case
default
false
true
return
void
package
import
private
public
protected
final
static
abstract
synchronized
volatile
strictfp
transient
new
extends
implements
class
instanceof
this
super
try
catch
finally
throw
throws
1.2常量与变量
常量:
指一旦设定,不允许再更改。
用final来修饰。
书写格式:
final数据类型常量名=常量值。
finaldoublePI=3.1415926;
用finalstatic一起修饰的为静态常量:
finalstaticStringDIRECTION_EAST=“东”;
常量名称一般都采用大写。
如果名称中含有多个单词,单词之间以“_”分隔。
常量在定义时就要初始化赋值。
变量:
A变量必须声明,并且初始化以后使用;
B变量必须有明确的类型;
C变量不能重复定义。
变量的作用域
a在声明的地方开始,到块结束为止
b离开变量的作用域结束,变量将回收。
注:
变量只能在其定义的作用域中使用,离开变量的作用域,变量将被回收。
在某一确定的作用域中,
变量名必须是唯一的。
2数据类型
数据类型分成基本数据类型和引用类型。
2.1基本数据类型
基本数据类型(8种):
整型:
byte、short、int、long;
浮点型:
float、double;
字符型:
char;
布尔类型:
boolean。
整数字面量(直接量)默认是int类型;
long类型的字面量使用"
L"
"
l"
后缀;
浮点数的字面量:
默认是double。
定义float类型的字面量使用”f”,”F”后缀;
boolean布尔类型表达:
真(true)/假(false)
2.2基本数据类型与包装类
基本数据类型的数据不是对象,为了通用性,每个基本数据类型都有一个与之对应的包装类:
Byte、Sort、Integer、Long;
Float、Double;
Character;
Boolean。
案例:
BaseDemo01.java
2.3类型转换
自动类型转换:
是小类型到大类型的转换会自动完成,是自动发生的,一般不需要处理。
这种转换满足两个条件:
①两种类型必须兼容;
②小类型到大类型的转换
byte<
short<
int<
long<
float<
double
强制类型转换:
范围大的数据类型转换成范围小的数据类型。
需求明确处理,这种转换会溢出,或者损失精度.要
注意数据的范围。
语法格式:
数据类型变量名称1=(数据类型)变量名称2;
例:
inti=10;
byteb=(byte)i;
BaseDemo02.java
3运算符
2.1算术运算符
加(+)、减(-)、乘(*)、除(/)、取余(%)、自增(++)、自减(--)。
%----计算除法的余数:
1)0对其他数的余数是0;
2)n%3是周期函数,函数值[0,3);
3)负数的余数是负数
++/-------自增(自减)运算(重点、难点)
1)可以将当前变量自我增加(减少)1;
2)i++,后++,先将i的值作为整个表达的值,然后将i增加1;
3)++i,先++,先将i增加1,然后将i的值作为整个表达的值。
案例:
OperationDemo01.java
2.2比较运算符
大于(>
)、小于(<
)、等于(==)、大于等于(>
=)、小于等于(<
=),返回结果为布尔类型true/false。
OperationDemo02.java
2.3逻辑运算符
非(!
)、与(&
&
)、或(||),返回结果为布尔类型true/false。
OperationDemo03.java
2.4位运算符
就是转换成二进制进行运算。
按位非(~):
取反。
按位与(&
):
两个者为1则为1,否则均为0。
按位或(|):
任意为1则为1,否则为0。
按位异或(^):
再者不同则为1,否则为0。
右移(>
>
转换成二进制,向右移指定位数,被移走的最高位的值由原最高位的数补充。
左移(<
<
转换成二进制,向左移指定位数,被移走位的值由0补充。
无符号右移(>
转换成二进制,向右移指定位数,被移走的最高位的值由0补充。
OperationDemo04.java
2.5赋值运算符
等于号(=)。
例:
inti=3;
//将整数3赋给变量i
i+=1;
//相当于i=i+1
相似的写法还有-=*=/=%=
2.6三元运算符(条件运算符)
格式:
表达式?
值1:
值2;
当表达式结果为布尔类型,当表达式=true时,返回值1;
当表达式=false时,返回值2。
intmax=1>
2?
1:
2;
OperationDemo05.java
4流程控制
3.1if-else语句(重点)
if-else是条件判断语句。
当满足某一个判断条件时,执行其中的代码;
当所有的判断条件均不满足,执行
else语句中的代码。
语法格式:
if(expression){if(expression1){if(expression1){
执行语句1;
执行语句1;
if(expression1){
}else{}elseif(expression2){执行语句1;
执行语句2;
执行语句2;
}else{
}}……elseif(expressionN){执行语句2;
执行语句N;
}
}else{}else{
执行语句N+1;
执行语句N+1;
}}
If-else案例-判断奇偶数:
IfElseDemo01.java
If-else案例-计算N个甜筒的花销:
IfElseDemo02.java
If-elseif–else案例-根据成绩打印成绩级别:
IfElseDemo03.java
If-elseif–else案例-输入月份显示季节:
IfElseDemo:
4.java
3.2switch-case语句
由一个控制表达式和多个case语句块组成。
switch(expression){
case常量表达式1:
执行语句1;
break;
case常量表达式2:
执行语句2;
case常量表达式3:
执行语句3;
……
case常量表达式N:
执行语句N;
default:
执行语句;
}
case可以接受的类型有基本类型的byte,short,int,char,以及引用类型的String(只有JavaSE7和以后的版本
可以接受String类型参数),enum和byte,short,int,char的封装类Byte,Short,Integer,Character
default是可选项,可根据实际情况添加或省略。
swich-case案例-根据成绩打印成绩级别:
SwitchCaseDemo01.java
swich-case案例-输入月份显示季节:
SwitchCaseDemo02.java
3.3while循环(重点)
一般用于循环次数未知的情况下,此执行至少执行0次。
while(条件){
执行语句;
While循环:
BaseWhileDemo.java
3.4do-while循环(重点)
一般用于循环次数未知的情况下,do-while语句至少执行1次(笔试题)。
do{
执行语句;
}while(条件);
Do-while循环:
BaseDoWhileDemo.java
3.5for循环(重点)
一般用于循环次数已知的情况下。
for(初始化;
条件;
迭代){
这是普通的for循环,还有一种是增强for循环,一般用于数组或集合的遍历。
数组中介绍。
For循环:
BaseForDemo.java
For循环案例-ForDemo01.java:
ForDemo01.java
For循环案例-求水仙花数:
ForDemo02.java
For循环案例-九九乘法表:
ForDemo03.java
For循环案例-打印三角形:
ForDemo04.java
3.6continue
用于while,do-while,for循环中,常与if条件语句一起使用,作用就是加速循环。
if(条件){
continue;
}
3.7break
用于两种情况:
1.在switch语句中,用于终止case语句,跳出switch语句;
2.在while,do-while,for循环中,用于跳出当前的循环(注:
指有多个循环时,break在哪个循环中调用,它就跳出哪一层循环。
)。
迭代){for(初始化;
if(条件){for(初始化;
if(条件){
}break;
}}
}
}
3.8return
用在方法的最后,用来退出当前方法,回到调用方法的位置处。
public返回类型method(){
……
return返回类型相同类型的变量/值;
注:
方法中可以书写多个return语句,但必有一个return语句会被执行。
4String类型
String类型,即字符串,它是引用类型。
它存放的是在内存中的地址。
4.1初始化
Strings1=“这是字符串1”;
Strings2=newString(“这是字符串2”);
Strings3;
s3=“这是字符串3”;
注:
String类型是不可变类,字符串每次的变动,引发新的String对象的生成,即在内存中分配一个新的空间。
4.2字符串与基本数据类型之间的转换
字符串与基本数据类型的转换,需要借助基本数据类型的包装类进行转换。
字符串->
Stringstr=“123”;
intnumber=Integer.parseInt(str);
整型->
字符串:
intnumber=123;
Stringstr=number+””;
或Stringstr=Integer.toString(i)
浮点类型
浮点类型:
Stringstr=“1.12"
;
doublenumber=Double.parseDouble(str);
浮点类型->
doublenumber=3.1415926;
或Stringstr=Double.toString(i)
StringDemo01.java
4.3常用方法
charAt(intindex)返回指定下标index对应的字符
endsWith(Stringsuffix)判断字符是否以suffix字符串结尾,true/false
startWith(Stringsuffix)判断字符是否以suffix字符串开头,true/false
equals(Objectobj)判断两个字符串是否相等,true/false
indexOf(Stringsuffix)返回子串suffix对应的下标
lastIndexOf(Stringsuffix)返回子串suffix在字符串中最后一次出现的位置
length()返回字符串的长度
matches(Stringregex)判断字符串是否与正则表达式匹配
replace(charoldChar,charnewChar)字符串中旧的子串oldChar替换成新的子串newChar
split(Stringregex)按regex对字符串进行拆分,返回字符数组
substring(intbeginIndex,intendIndex)截取指示下标范围内的子串,返回子字符串
案例-endsWith(String)、startWith(String)方法的使用:
StringDemo02.java
案例-length()、concat(String)、substring(int,int)方法的使用:
StringDemo03.java
案例-charAt(int)、indexOf(String)、lastIndexOf(Stringsuffix)方法的使用:
StringDemo04.java
案例-split(String)、equals(Object)、replace(char,char)、matches(String)方法的使用:
StringDemo05.java
4.4StringBuffer与StringBuilder
String类是不可变类,任何对String的改变都会引发新的String对象的生成。
StringBuffer和StringBuilder类的对象都能够被多次的修改,并且不产生新对象。
线程安全性:
StringBuilder:
不支持并发操作,线性不安全的,不适合多线程中使用;
StringBuffer:
支持并发操作,线程安全的,适合多线程中使用。
在jdk1.5之后引入StringBuilder,由于StringBuilder相较于StringBuffer有速度优势,所以多数情况下建议
使用StringBuilder类。
然而在应用程序要求线程安全的情况下,则必须使用StringBuffer类。
总结:
若操作少量的数据可以使用String;
若操作大量数据且要求线程安全的情况下,必须使用StringBuffer;
其他情况尽可以用StringBuilder。
常用方法:
append(数据类型参数)方法:
追加内容。
toString()方法:
转换成String类型。
案例-比较String,StringBuffer,StringBuild的效率:
StringDemo06.java
案例-StringBuilder的使用:
StringBuilderDemo07.java
JAVA数组
1数组
数组是引用类型,用于存储一组相同数据类型的数据。
数组中存储的元素的数据类型必须相同。
数组被创建后,它的大小(容量)就是固定的,是不能被改变的。
根据数组存放元素的组织结构,可将数组分为一维数组、二维数组以及多维数组。
以下以一维数组为例。
1.1数组创建
数组创建的方式:
1.数据类型[]数组名称;
如:
int[]arr;
2.数据类型数组名称[];
intarr[];
以上只是创建书写,未对其进行初始化,即在内存中分配空间。
初始化:
1.静态初始化:
int[]arr2={1,2,3,4};
2.动态初始化:
int[]arr=newint[10];
for(inti=0;
i<
arr.length;
i++){
arr[i]=i;
1.2数组遍历(重点)
intarr[]arr={1,2,3,4,5,6};
数组arr的下标从0开始,数组的下标范围为0~arr.length-1。
普通for循环方式:
for(inti=0;
i++){
System.out.println(arr[i]);
增强for循环(重点):
书写上比普通for循环方式更简便。
不需要下标时,可以选择这种方式,集合中也常使用。
for(intvalue:
arr){
System.out.println(value);
value表示循环到数组当前位置对应的元素值。
1.3数组拷贝
三种方式:
第一种,循环方式(while,do-while,for);
第二种,clone()方法,一般用于创建并返回此对象的一个副本,实现数组的复制。
第三种,System.arraycopy()方法,是System的静态方法。
System.arraycopy(源数组,开始位置,目标数组,拷贝的位置,拷贝的元素个数);
案例-将一个数组的元素复制到另一个数组:
ArrayDemo02.java
1.4常用方法
属性:
length数组的长度。
方法:
Arrays.sort();
数组按升序排序。
Arrays.fill();
数组填充元素。
Arrays是数组的辅助类。
ArrayDemo03.java
1.5模拟数组动态扩展
数组被创建后,它的大小(容量)就是固定的,是不能被改变的。
数组的动态扩展,只是通过Arrays.copyOf()方法去模拟数组扩展的现象,不是真正意义上的数组的扩展。
(注:
Arrays是Array的辅助类。
)
ArrayDemo04.java
1.6排序(重点)(面/笔试题)
冒泡排序:
思路:
相邻两个元素比较,当后者<
前者,将两者位置对换;
此种排序尾部最先排好。
fori0~length-1
forj0~length-1-i
ifarr[j}>
arr[j+1]
arr[j]<
->
arr[j+1]
i:
代表比较次数;
j:
代表比较的元素的位置。