您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页JAVA基础知识点梳理(精简)

JAVA基础知识点梳理(精简)

来源:好走旅游网
精品文档

JAVA基础知识点梳理(重点笔记)

1、标识符规则

a) 可以由字母、数字、下划线、美元符$组成,不能以数字开头 b) 不能是java的关键字和保留字 c) 严格区分大小写,且尽量见名知意 2、变量

public class test{ public static void main(String[] args){ String love=\"imooc\";

System.out.println(\"变量love的内容是:\"+love); love=\"i love imooc\";

System.out.println(\"重新赋值后变量love的内容是\"+love); } }

3、变量命名习惯:

a) 第一个单词的首字母小写,其后单词的首字母大写(骆驼式),myAge

b) 变量命名时,尽量简短且能清楚的表达变量的作用,见名知意,如stuName Ps: java变量长度没有限制,但是严格区分大小写 4、数据类型

a) int :4个字节 b) Double:8个字节 c) Float:4个字节 float变量赋值在数值后添加字母f float he=12.2f; d) Char:2个字节 char 变量赋值使用单引号’’ e) Boolean:1个字节 取值只能为:true和false f) String :引用数据类型 5、Java常量的应用:

a) Final 数据类型 常量名=值; b) 常量名一般使用大写字符 6、逻辑运算符:

a) ^:异或 有且只有一个为true 则返回true 7、条件运算符:

a) () ? 正确表达式 : 错误表达式

.

精品文档

i. Eg: String str=(8>5)? “yes” : “no”

8、运算符优先级最高的是:() 9、输出换行:System.out.println(); 10、

//循环语句练习 package ttt;

public class test6 { }

11、System.out.println 12、System.out.print 13、

package ttt;

import java.util.Scanner; public class test8 { }

14、数组

a) 声明数组:

i. 数组类型[] 数组名; ii. 数组类型 数组名[]; b) 分配空间:

i. 数组名 =new 数据类型【数组长度】

public static void main (String[] args){ }

int i=1;

System.out.println(\"请键入一个9位以内的数:\"); Scanner aa = new Scanner(System.in); int bb=aa.nextInt(); aa.close(); for(;bb>9;i++){ }

System.out.println(\"i 的值为\"+i);

bb=bb/10;

换行 不换行

public static void main (String[] args){ }

int i=1; int sum1=0; for(;i<101;i++){ }

System.out.println(\"100以内不可以被3整除的数之和为:\"+sum1);

if((i%3)!=0){ }

sum1+=i;

.

精品文档

Eg: socres = new int[5]; 合并: int[] socres=new int[5];

c) int[] sorces={1,2,2,3};

等价于: int[] sorces=new int[]{1,2,2,3}; d) 数组名.length 获取数组的长度 e) arrays类操作java中的数组

1、排序:arrays.sort(数组名) (升序)

2、将数组转换为字符串:arrays.toString(数组名);(可以实现把多个数组元素连接在一起,元素中间用逗号和空格隔开)。 f) foreach形式的for语句使用:

for(int i : words){

System.out.print(i);

}

15、java中无参无返方法的调用

a) 定义:public void show(){} 方法名字第一个词小写,之后首字母大写 b) 调用:

i. 创建类的对象 ii. 对象名.方法名();

16、java中无参有返方法的调用

a) Public int show(){ return sum; } b) 注意:

i. 如果方法的返回类型为void,则方法中不能使用return返回值 ii. 方法的返回值最多只能有一个,不能返回多个值 iii.

方法返回值的类型必须兼容

17、方法的重载:

a) 必须是在同一个类中 b) 方法名相同

c) 方法参数的个数、顺序或类型不同 d) 与方法的修饰符或返回值没有关系

18、随机数方法:(int)(Math.random()*100) 不需要导包 19、类和对象:

a) 类是模子,确定对象将会拥有的特征(属性)和行为(方法) b) 类是对象的模型,具有相同属性和方法的一组对象的集合 c) 对象:

i. 属性——对象具有的各种特征 ii. 每个对象的每个属性都有特定值

d) 类是抽象概念,仅仅是模板,比如“手机”;对象是一个具体的实体 e) 所有的java程序都是以类class为组织单元,由属性和方法组成 f) Java对象使用步骤:

i. 类名 对象名=new 类名(); ii. Phone phone=new Phone(); iii.

引用属性:phone.screen=5;//给screen属性赋值5

iv. 引用方法:phone.send();//调用send()方法

20、成员变量和局部变量的区别

.

精品文档

a) 作用域不同 b) 初始值不同

c) 在同一个方法中,不允许有同名局部变量 d) 两类变量同名时,局部变量具有更高的优先级 21、构造方法:

a) 使用new+构造方法 创建一个新的对象

b) 构造方法是定义在java类中的一个用来初始化对象的方法 c) 构造方法与类同名且没有返回值

v. 构造方法的格式:public 构造方法名(){ //初始化代码 } vi. Phone phone=new Phone(); vii.

构造方法的名字与类名相同

d) 当没有指定构造方法是,系统会自动添加无参的构造方法

e) 当有指定构造方法,无论是有参、无参的构造方法,都不会自动添加无参的构造方法 f) 构造方法的重载:方法名相同,但参数不同的多个方法,系统自动选择 22、静态变量static:

a) Static可以修饰变量、方法、代码块

b) 访问(引用):类名.变量名 hello.haha c) 定义: public static String haha=”imoc”; d) Public:表示公开的、公有的 23、静态方法:

a) 访问:类名.方法名();

b) 静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。 c) 如果调用非静态成员,可以通过对象来访问

d) 在普通的方法中可以直接访问同类的非静态变量和静态变量

e) 静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。 24、程序运行时静态初始化块最先被执行,然后执行普通初始化块,最后才执行构造方法。 25、面向对象的三大特性:封装、继承、多态 26、封装:

a) 概念:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供

的方法来实现对隐藏信息的操作和访问

b) 好处:只能通过规定的方法访问数据;隐藏类的实例细节,方便修改和实现 c) 实现步骤:

i. 修改属性的可见性:设为private : private int a; ii. 创建getter/setter方法:用于属性的读写 iii.

在getter、setter方法中加入属性的控制语句:对属性的合法性进行判断

iv. (其实就是通过调用方法去读写属性)

v. 可以通过eclipse 中source菜单中select getters and setters to create

27、java中的包:

a) 作用:管理java文件;解决同名文件冲突 b) 定义包:package包名

i. 必须放在java源程序的第一行 ii. 包名间可以使用“.”隔开 iii.

Eg:com.imooc.myclass‘;

c) 系统包:

.

精品文档

Java.lang.(类):包含java语言基础的类 Java.util.(类):包含java语言中各种工具类 Java.io.(类):只包含输入、输出相关功能的表 d) 包的使用:

I. 可以通过import关键字,在某个文件使用其他文件中的类。

Import com.imooc.music.myclass Ii. Java中,包的命名规范是全小写字母拼音

Iii.使用的时候不但可以加载某个包下的所有文件,也可以加载某个具体子包下的所有文件

28、this关键字:

a) 代表当前对象

i. This.属性 操作当前对象的属性 ii. This.方法 调用当前对象的方法 b) 封装对象的属性的时候经常会使用this关键字 29、java中的内部类:(包含内部类的类称为外部类)

a) 内部类提供了更好的封装,可以把内部类隐藏在外部类之内,不允许同一个包中的其

他类访问该类

b) 内部类的方法可以直接访问外部类的所有数据,包括隐私的数据

c) 内部类所实现的功能使用外部类同样可以实现,只是有时使用内部类更方便 d) 内部类可以分为:

i. 成员内部类

1. 内部类中定义的方法可以直接访问外部类中的数据,不受访问控制符的影响 2. 定义一个内部类对象:

内部类 对象名 =外部类对象.new 内部类()

3. 外部类不能直接使用内部类的成员和方法,可以先创建内部类的对象,然后

通过内部类的对象来访问其他成员变量和方法

4. 外部类和内部类具有相同的成员变量或方法,则内部类默认访问自己的成员

变量或方法,如果要访问外部类的成员变量,可以使用this关键字

ii. 静态内部类

1. 静态内部类不能直接访问外部类的非静态成员,但可以通过 new外部类().

成员 的方式访问

2. 如果外部类的静态成员与内部类的成员名称相同,可以通过“类名.静态成员”

访问外部类的静态成员;如果外部类的静态成员与内部类的成员名称不同,则可以通过“成员名”直接调用外部类的静态成员

3. 创建静态内部类的对象时,不需要外部类的对象,可以直接创建 内部类 对

象名=new 内部类();

iii.

方法内部类

访问修饰符的总结 访问修饰符 本类 private 默认 protected public √ √ √ √ 同包 √ √ √ 子类 √ √ 其他 √ .

精品文档

1. 方法内部类就是定义在外部类的方法中,方法内部类只在该方法的内部可见,

即只在该方法内可以使用。

2. 由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能

使用访问控制符和static修饰符

iv. 匿名内部类

30、继承:

a) Java里都是单继承 b) 好处:

i. 子类直接拥有父类的所有属性和方法,但private除外 ii. 实现代码的复用 iii.

Class 子类 extends 父类

c) Final关键字

i. 修饰类:则该类不允许被继承

ii. 修饰方法:则该方法不允许被覆盖(重写) iii.

修饰属性:则该类的属性不会进行隐式的初始化(类的初始化属性必须有值)或在构造方法中赋值

iv. 修饰变量,则变量的值只能赋一次,即常量 d) Super关键字

i. 在对象的内部使用,可以代表父类对象

ii. 方位父类的属性,或方法, super.age super.eat()

.

精品文档

31、Object类:

a) Object类是所有类的父类,如果一个类没有使用extends关键字明确标识继承另一

个类,那么这个类默认继承object类 b) Object类中的方法,适合所有子类 c) 方法:

i. toString()方法:

1. 在object类里面定义的tostring()方法的时候返回的对象的哈希码(对象

地址字符串)(用来区分对象)

2. 如:直接输出dog对象的值:System.out.println(dog);

3. 生成:source菜单栏——>generate toString()——>生成输出属性的方

ii. Equals()方法:

1. 比较的是对象的引用是否指向同一块内存地址:Dog dog=new Dog(); 2. 生成:source菜单栏——>generate hashcode()and equals()...

a) 类对象:姓名、年龄、身高...obj.getclass() b) 类的对象:小灰、25、170...obj

3. 调用:if(dog1.equals(dog2))——>判断两个对象是否相同

32、多态:(继承是多态的基础)

a) 引用多态:

i. 父类的引用可以指向本类的对象:animals obj1=new animals(); ii. 父类的引用可以指向子类的对象: animals obj2=new dog(); iii.

注意:子类的引用不可以指向父类的对象:dog obj3=new animals();

b) 方法多态:

i. 创建本类对象时,调用的方法为本类方法

ii. 创建子类对象时,调用的方法为子类重写的方法或者继承的方法

33、多态中的引用类型转换

a) 向上类型转换(隐式/自动类型转换),是小类型到大类型的转换,无风险 b) 向下类型转行(强制类型转换),是大类型到小类型的转换,有风险,溢出 c) Instanceof 运算符,来解决引用对象时的类型,避免类型转换的安全问题

i. Eg:

Dog dog=new Dog();

Animal anmal=dog;//自动类型提升,向上类型转换 Dog dog2=(Dog)animal;//强制类型转换,向下类型转换

Cat cat=(Cat)animal;//编译时Cat类型;运行时Dog类型,报错 可以替换为:

if (animal instanceof Cat){

Cat cat=(Cat)animal; }

34、抽象类:

a) 语法:抽象类前使用abstract关键字修饰,则该类为抽象类 b) 作用:限制规定子类必须实现某些方法,但不关注实现细节 c) 规则:

.

精品文档

i. Abstract定义抽象类

ii. Abstract定义抽象方法,只有声明,不需要实现 iii.

包含抽象方法的类是抽象类

iv. 抽象类中可以包含普通的方法,也可以没有抽象方法 v. 抽象类不能直接创建,可以定义引用变量

d) 现有Shape图形类,用Rectangle矩形和Circle圆形子类,求图形的周长和面积:

Shape.java:

package com.amooc;

public abstract class Shape{

public abstract void zhouchang(double l,double w); public abstract void mianji(double l,double w); public abstract void zhouchang2(double r); public abstract void mianji2(double r);

}

Rectangle.java:

package com.amooc;

public class Rectangle extends Shape { }

imooc1.java:

package com.amooc;

public void zhouchang(double l,double w){ }

public void mianji(double l,double w){ }

public void zhouchang2(double r){ }

public void mianji2(double r){ }

double m; m=3.14*r*r;

System.out.println(\"半径为:\"+r+\" ,的圆形面积是:\"+m); double z; z=2*3.14*r;

System.out.println(\"半径为:\"+r+\" ,的圆形周长是:\"+z); double m; m=l*w;

System.out.println(\"长为:\"+l+\" ,宽为:\"+w+\" ,的长方形面积double z; z=2*(l+w);

System.out.println(\"长为:\"+l+\" ,宽为:\"+w+\" ,的长方形周长

是:\"+z);

是:\"+m);

.

精品文档

public class imooc1{ }

35、接口:

a) 概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成。类是一

种实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只规定这些类里必须提供某些方法

b) 定义:和类定义不同,定义接口不再使用class关键字,而是使用interface关键字 c) 基本语法:[修饰符] interface 接口名 [extends 父接口1,父接口2...]

{

零个到多个常量定义 零个到多个抽象方法的定义 }

接口是用来被继承、被实现的,修饰符一般建议用public 注:不能使用private和protected修饰接口

d) 接口定义常量:接口中的属性是常量,即使定义时不添加 public static final修

饰符,系统也会自动加上

e) 接口定义方法:接口中的方法只能是抽象方法,总是使用,即使定义时不添加public

abstract ,系统也会自动加上 f) 使用接口1:

i. 一个类可以实现一个或多个接口,实现接口使用implements关键字,java中一

个类只能继承一个父类是不够灵活的,通过实现多个接口可以做补充 ii. 继承父类实现接口的语法为:

[修饰符] class 类名 extends 父类 implements 接口1,接口2... {

类体部分//如果继承了抽象类,需要实现继承的抽象方法;要实现接口中的抽象方法... }

如果要继承父类,继承父类必须在实现接口之前

Eg: new interface Ijiekou (命名习惯,名字前加大写I) g) 使用接口2:

i. 接口在使用过程当中,还经常与匿名内部类配合使用,匿名内部类就是没有名字

的内部类,多用于关注实现而不关注实现类的名称 ii. 语法格式:

Interface i=new Interface(){

public static void main(String[] args){ }

Rectangle z1=new Rectangle(); Shape m1=new Rectangle(); Shape z2=new Rectangle(); Shape m2=new Rectangle(); z1.zhouchang(3,4); m1.mianji(3,4); z2.zhouchang2(3); m2.mianji2(3);

.

精品文档

public void method(){

System.out.println(“匿名内部类实现接口的方式”); } };

注意:末尾以分号结束 或:

new Interface(){

Public void playGame(){

System.out.println(“使用匿名内部类的方式实现接口”); }

}.playGame();

h) 在接口中定义方法geta(),正确的格式是:void geta();

注:接口方法不能有方法体,同时方法的访问修饰符不能为private和protected

36、UML:(unified modeling language),又称统一建模语言或标准建模语言。是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持。

a) 用例图:(the use case diagram)

i. 用例图能够以可视化的方式,表达系统如何满足所收集的业务规则,以及特定的

用户需求等信息

b) 序列图:(the sequence diagram)

i. 序列图用于按照交互发生的一系列顺序,显示对象之间的这些交互

用户柜台窗口点帐窗口取钱账户后台表明身份请求取钱确认并取款分发货币授权合法

c) 类图:(the class diagram)

i. UML类图业务逻辑和所有支持结构一同被用于定义全部的代码结构

d) UML建模工具:

i. Visio、rational rose、powerdesign

37、综合练习:答答租车系统

.

精品文档

a) 功能:

i. 展示所有可租车辆 ii. 选择车型、租车量 iii.

展示租车清单,包含:总金额、总载货量及其车型、总载人量及其车型

b) 项目分析:

i. 数据模型分析

1. 通过对现实世界的事与物主要特征的分析、抽象,为信息系统的实施提供数

据存取的数据结构以及相应的约束 2. 数据结构的组成:操作(方法)、属性 ii. 业务模型分析 iii.

显示和流程分析

38、异常:走路被树叶绊倒,吃糖饼烫后脑勺,考试快交卷了才发现反面还有题...

a) 组织图:

ThrowableErrorException虚拟机错误内存异常RuntimeException检异常查文件异常SQL异常空指针异常数组下标越界异常类型转换异常算术异常

b) 处理异常:

i. try-catch 以及try-catch-finally ii. Eg:

Try{

//一些会抛出异常的方法 }catch(Exception e){

//处理该异常的代码块 }finally{

//最终将要执行的代码 }

iii.

package com.imooc0325; public class test1{

/* */

divide:除数 result:结果

try-catch捕获while循环

每次循环,divide减1,result=result+100/divide 如果:捕获异常,打印输出\"抛出异常了!!!\",返回-1 否则:返回result

.

精品文档

public int test(){ }

public static void main(String[] args){ }

}

test1 tct=new test1(); int result=tct.test();

System.out.println(\"test方法执行完毕,返回值:\"+result); int divide =10; int result =100; try{ }

while(divide>-1){ }

return result;

e.printStackTrace();//打印异常具体信息 System.out.println(\"循环抛出异常了!!!\"); return -1;

System.out.println(\"我还会回来的~~\");

divide--;

result =result+100/divide;

}catch(Exception e){

}finally{

c) 如果三个程序块之内都没有return语句,则调用程序块外的return语句 d) Java中的异常抛出以及自定义异常

i. Java中的异常抛出:

1. throw :将产生的异常抛出

2. throws:声明将要抛出何种类型的异常(声明)

public void 方法名(参数列表) throws 异常列表{

//调用会抛出异常的方法或者: throw new Exception();

ii. 自定义异常:

1. class 自定义异常 extends 异常类型{}

2. Public class DrunkException extends Exception{

Public DrunkException(String message){} }

e) JAVA中的异常链:

/* 出

main方法中,调用test2(),尝试捕获test2()方法抛出的异常 test1():抛出“喝大了”异常

test2():调用test1(),捕获“喝大了”异常,并且包装成运行时异常,继续抛

.

精品文档

*/

public void test1() throws DrunkException{ }

public void test2() { }

public static void main(String[] args){ }

注:捕获到的异常,可以在当前方法的catch块中处理,也可以抛出给调用者去处理 39、实用中的经验与总结:

a) 处理运行时异常时,采用逻辑去合理规避,同时辅助try-catch处理

b) 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常 c) 对于不确定的代码,也可以加上try-catch,处理潜在的异常

d) 尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出 e) 具体如何去处理异常,要根据不同的业务需求和异常类型去决定 f) 尽量添加finally语句块去释放占用的资源

40、JAVA中的字符串:在java中,字符串被作为String类型的对象处理。String类位于java.lang包中。默认情况下,该包被自动导入所有的程序

a) String s1=“imooc”;

//创建一个字符串对象imooc,名为s1 //创建一个空字符串对象,名为s2

b) String s2=new String();

chaintest ct=new chaintest(); try{ }

ct.tset2();

e.printStackTrace(); }catch(Exception e;) try{ }

tset1();

RuntimeException newExe=new RuntimeException(\"司机一滴酒,亲人newExe.initCause(e); throw newExe;

}catch(DrunkException e){

throws new DrunkException(\"喝车别开酒\");

两行泪~~\");

c) String s3=new String(“imooc”); //创建一个字符串对象imooc,名为s3 41、java中字符串的不变性:String对象创建后则不能被修改,是不可变的,所谓的修改其实时创建了新的对象,所指向的内存空间不同

a) 其实质是创建了新的字符串对象

b) 一旦一个字符串在内存中创建,则这个字符串将不可改变 42、java中String类的常用方法

a) String类提供了许多用来处理字符串的方法 处理字符串的方法 1 2 int length() int indexOf(int ch) 返回当前字符串的长度 查找ch字符子该字符串中第一次出现的位置 .

精品文档

3 4 5 6 7 8 9 int indexOf(String str) int lastIndexOf(int ch) int lastIndexOf(String str) String substring(int beginIndex) String substring(int beginIndex,int endIndex) String trim() boolean equals(Object obj) 查找str子字符串在该字符串中第一次出现的位置 查找ch字符在该字符串中最后一次出现的位置 查找str子字符串在该字符串中最后一次出现的位置 获取从beginIndex位置开始到结束的字符串 获取从beginIndex位置开始到endIndex位置的子字符串中 返回去除了前后空格的字符串 将该字符串与指定对象比较,返回ture或false 将字符串转换为小写 将字符串转换为大写 获取字符串中指定位置的字符 10 String toLowerCase() 11 String toUpperCase() 12 char charAt(int index) 13 String[] split(String regex,int limit) 将字符串分割为子字符串,返回字符串数组 14 byte[] getBytes() 将该字符串转换为byte数组 b) 字符串str中字符的索引从0开始

c) 使用indexOf进行字符或字符串查找时,如果匹配返回位置索引;如果没有匹配结果,

返回-1

d) 使用substring(beginIndex,endIndex)进行字符串截取时,包括beginIndex位

置的字符,不包括endIndex位置的字符 e)

package com.imooc0325; import java.util.Arrays; public class test2 {

public static void main(String[] args){

//定义一个字符串“学习一下java编程” String str =\"学习一下java编程\"; //打印出字符串长度

System.out.println(\"字符串长度:\"+str.length()); //查找字符‘编’的位置 char c='编';

System.out.println(\"字符'编'的位置:\"+str.indexOf(c)); //查找字符串'JAVA'的位置

System.out.println(\"子字符串'java'的位置://查询子字符串'imooc'的位置,如果找不到返回-1 System.out.println(\"子字符串'imooc'的位置://按空格把字符串拆分成一个数组,并输出数组元素 String[] arr=str.split(\" \");

System.out.print(\"按空格拆分成数组:\"+Arrays.toString(arr)); System.out.println();

//获取索引位置[4,8)之间的字符串

System.out.println(\"获取位置[4,8)之间的子符串:

\"+str.indexOf(\"java\"));

\"+str.indexOf(\"imooc\"));

\"+str.substring(4,8));

.

精品文档

}

}

43、==和equals()的区别:

a) ==:判断两个字符串在内存中首地址是否相同,即判断是否是同一个字符串对象 b) equals():比较存储在两个字符串对象中的内容是否一致

//定义一个字符串“学习JAVA 编程” String str=\"学习JAVA 编程\"; //将字符串转换为小写

System.out.println(\"转换为小写:\"+str.toLowerCase()); //获取索引位置为1的字符

System.out.println(\"获取索引为1位置的字符:\"+str.charAt(1)); //将字符串转换为byte[],并打印输出 byte[] b=str.getBytes();

System.out.print(\"转换为字符数组:\"); for(int i=0;iSystem.out.println();

//和另一个字符串“学习JAVA 编程”进行比较 String str2 =new String(\"学习JAVA 编程\");

System.out.println(\"str和str2的内存地址相同?\"+(str == str2)); System.out.println(\"str和str2的内容相同?\"+str.equals(str2)); 44、定义字符串可以使用:

a) String

b) StringBuilder:性能更高,优先使用 c) StringBuffer:是线程安全的

d) 创建一个空对象:StringBuilder str1=new StringBuilder();

e) 创建字符串为“imooc”:StringBuilder str2=new StringBuilder(“imooc”); f)

//创建StringBuilder对象,存储字符串

StringBuilder str =new StringBuilder(\"hello\"); str.append(\" imooc\");//在字符串后面追加字符串 str.append(520);//在字符串后面追加整数

System.out.println(\"字符串长度:\"+str.length());//字符串长度 System.out.println(\"插入前,\"+str); str.insert(11,\"!\");//在指定位置插入内容

String str2 =str.toString();//转换为String对象 System.out.println(\"插入后:\"+str2); System.out.print(b[i] + \" \");

45、java中的包装类:

a) 基本类型不能调用方法,功能简单。为了让基本数据类型也具备对象的特性,java

为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。

b) 包装类主要提供了两大类方法:

.

精品文档

i. 将本类型和其他基本类型进行转换的方法 ii. 将字符串和本类型及包装类互相转换的方法 c) 基本类型

序号 基本类型 对应的包装类 关系:

1 2 3 4 5 6 7 8 byte short int long float double char boolean Byte Short Integer Long Float Double Character Boolean 和包装类型之间的对应

d) Integer包装类的构造方法:

i. Integer(int value):创建一个Integer对象,表示指定的int值

ii. Integer(String s):创建一个Integer对象,表示String参数所指示的int值 iii. int i=2;//定义int类型变量,值为2

Integer m= new Integer(5);//定义Integer包装类对象,值为5 Integer n=new Integer(“8”);//定义Integer包装类对象,值为8

e) Integer包装类的常用方法:

返回值 方法名 解释

byte byteValue() 将该Integer转为byte类型

double doubleValue() 转为double类型

float floatValue() 转为float类型

int intValue() 转为int类型

long longValue() 转为long类型

static int parseInt(String s) 将字符串转换为int类型

String toString() 转为字符串类型 static Integer valueOf(String s) 将字符串转换为Integer类型

46、java中基本类型和包装类之间的转换

a) Integer a =new Integer(3); //定义Integer包装类对象,值为3

int b=a+5; //将对象和基本类型进行运算 b) 装箱:

int i=10; //定义一个int 基本类型值 Integer x =new Integer(i); //手动装箱 Integer y =i; //自动装箱 c) 拆箱:

Integer j=new Integer(8); //定义一个integer包装类对象,值为8 int m=j.intValue(); //手动拆箱为int类型 int n=j; //自动拆箱为int类型

.

精品文档

47、java中基本类型和字符串之间的转换

a) 基本类型转换为字符串有三种方法:

i. 使用包装类toString()方法 ii. 使用String类的valueOf()方法

iii. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串

Int c=10;

String str1=Integer.toString(c); //方法一 String str2=String.valueOf(c); //方法二 String str3=c+” ”; //方法三

b) 将字符串转换成基本类型有两种方法

i. 调用包装类的parseXxx静态方法

ii. 调用包装类的valueOf方法转换为基本类型的包装类,会自动拆箱

String str=”8”; int d=Integer.parseInt(str); //方法一 int e=Integer.valueOf(str); //方法二

48、使用Date和SimpleDateFormat类表示时间

a) 获取当前时间:Date类

Date d=new Date(); //使用默认的构造方法创建Date对象 System.out.println(d); //输出Date对象(显示当前时间) b) 格式化日期和时间:SimpleDateFormat类

i. 使用format()方法将日期转换为指定格式的文本

//创建Date对象,表示当前时间 Date d=new Date();

//创建SimpleDateFormat对象,指定目标格式

SimpleDateFormat sdf=new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

//调用format()方法,格式化时间,转换为指定格式的字符串 String today =sdf.format(d);

//输出转换后的字符串 System.out.println(today);

ii. 使用parse()方法将文本转换为日期

//创建日期格式的字符串

String day=”2016年3月27日 15:30:33”;

//创建SimpleDate.Format对象,指定字符串的日期格式

SimpleDateFormat df=new SimpleDateFormat(“yyyy年MM月dd日 HH:mm:ss”); //调用parse()方法将字符串转换为日期 Date date=df.parse(day); //输出转换后的时间

System.out.println(“当前时间:”+date); iii. 导包:

1. Import java.text.parseexception; 2. Import java.text.simple.date.format; 3. Import java.util.date;

49、Calendar类的应用(相比Date更好~~~)

a) 包:java.util.Calendar

.

精品文档

//获取年月日、时间信息

package com.imooc0327 import java.util.Calendar; public class test2 {

public static void main(String[] args){ }

}

50、使用Math类操作数据

a) 所有方法都是静态方法,可以直接使用 类名.方法名 b) 常用方法:

i. long : round() , iii. c) 实例:

package com.imooc0327; public class test3 { 整数

}

}

System.out.println(\"floor:\"+d);

double e=Math.ceil(a); //调用ceil方法,返回大于参数的最小整数 System.out.println(\"ceil:\"+e); double x=Math.random();

//调用random方法,产生[0,1)之间的随

public static void main(String[] args){

double a=12.21; int b=(int)a;

//定义一个double类型的变量

//将double类型强制转换为int类型,去掉小数点

返回四舍五入后的整数 返回小于参数的最大整数

返回大于参数的最小整数 返回[0,1)之间的随机数浮点数

ii. double : floor() ,

Calendar c =Calendar.getInstance();//创建Canlendar对象 int year =c.get(Calendar.YEAR);//获取年

int mouth =c.get(Calendar.MONTH)+1;//获取月份,0表示1月份 int day =c.get(Calendar.DAY_OF_MONTH);//获取日期 int hour =c.get(Calendar.HOUR_OF_DAY);//获取小时 int minute =c.get(Calendar.MINUTE);//获取分钟 int second =c.get(Calendar.SECOND);//获取秒

System.out.println(\"当前时间:\"+year+\"-\"+mouth+\"-\"+day+\"

\"+hour+\":\"+minute+\":\"+second);

Double : ceil() ,

iv. Double : random() ,

System.out.println(\"强制类型转换:\"+b);

long c=Math.round(a); //调用一个round方法,进行四舍五入 System.out.println(\"四舍五入:\"+c); double d=Math.floor(a);

//调用floor方法,返回小于参数的最大

机数浮点数

System.out.println(\"随机数\"+x);

int y=(int)(Math.random()*99); //产生[0,99)之间的随机整数 System.out.println(\"产生[0,99)之间的随机整数:\"+y);

.

精品文档

51、java中的集合框架:

a) Java的集合分为:

i. Set:无序、不可重复的集合 ii. List:有序、重复的集合 iii.

Map:具有映射关系的集合

iv. Queue:队列集合的实现

b) 集合类概述:为了保存数量不确定的数据,以及保存具有映射关系的数据,java提供

集合类。集合类主要负责保存、盛装其他数据,因此集合类也被成为容器类。所有的集合类都位于java.util包下。

c) 集合类和数组不一样,数组元素既可以是基本类型的值,也可以是对象(实际是对象

的引用变量);而集合里只能保存对象(实际也是引用变量)。 d) Java的集合类主要由两个接口派生而出:collection和map

e) Map保存的每项数据都是key-value对,也就是由key和value两个值组成

.

精品文档

f) Collection接口是list、set、queue接口的父接口,该接口里定义的方法既可以

用于操作set集合,也可以用于操作list和queue集合。Collection接口里定义了如下操作集合元素的方法:添加元素、删除元素、返回collection集合的元素个数以及清空整个集合

i. boolean add(Object o):该方法用于向集合里添加一个元素。如果集合对象被

添加操作改变了则返回true

ii. boolean addAll(Collection c):该方法把集合c里的所有元素添加到指定集

合里。如果集合对象被添加操作改变了则返回true iii.

void clear():清除集合里的所有元素,将集合长度变为0

iv. boolean contains(Object o):返回集合里是否包含指定元素

v. boolean containsAll(Object o):返回即集合里是否包含集合c里的所有元

vi. boolean isEmpty():返回集合是否为空。当集合长度为0时返回true,否则

返回false vii. viii.

Iterator iterator():返回一个Iterator对象,用于遍历集合里的元素 boolean remove(Object o):删除集合中指定元素o,当集合中包含了一

个或多个元素o时,这些元素将被删除,该方法将返回true

ix. boolean removeAll(Collection c):从集合中删除集合c里包含的所有元素

(相当于用调用该方法的集合减集合c),如果删除了一个或一个以上的元素,该方法返回true

x. boolean retainAll(Collection c):从集合中删除集合c里不包含的元素(相

当于取得把调用该方法的集合变成该集合和集合c的交集),如果该操作改变了调用该方法的集合,该方法返回true xi. int size():该方法返回集合里元素的个数 xii.

Object[] toArray():该方法把集合转换成一个数组,所有集合元素变成对应的数组元素

g) Iterator接口也是java集合框架的成员,但它与collection系列、map系列的集

合不一样。Collection、map主要用于盛装其他对象,而iterator则主要用于遍历collection集合中的元素,iterator对象也被称为迭代器。它向应用程序提供了遍历collection集合元素的统一编程接口,iterator接口里定义了如下三个方法: i. boolean hasNext():如果被迭代的集合元素还没有被遍历,则返回true ii. Object next():返回集合里下一个元素 iii.

void remove():删除集合里上一次next方法返回的元素

h) set集合:实际上与collection相同,只是行为不同,set不允许包含重复元素。如

果试图把两个相同元素加入同一个set集合中,则添加操作失败,add方法返回false,且新元素不会被加入 i) 三个实现类:

i. HashSet是Set接口的典型实现,大多数使用Set集合时就是使用这个实现类。

HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能。HashSet集合判断两个元素相等的标准时两个对象通过equals方法比较相等,并且两个对象的hashCode()方法返回值也相等

.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务