Java从入门到放弃一二三四.docx

上传人:b****4 文档编号:26879663 上传时间:2023-06-23 格式:DOCX 页数:25 大小:57.55KB
下载 相关 举报
Java从入门到放弃一二三四.docx_第1页
第1页 / 共25页
Java从入门到放弃一二三四.docx_第2页
第2页 / 共25页
Java从入门到放弃一二三四.docx_第3页
第3页 / 共25页
Java从入门到放弃一二三四.docx_第4页
第4页 / 共25页
Java从入门到放弃一二三四.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

Java从入门到放弃一二三四.docx

《Java从入门到放弃一二三四.docx》由会员分享,可在线阅读,更多相关《Java从入门到放弃一二三四.docx(25页珍藏版)》请在冰豆网上搜索。

Java从入门到放弃一二三四.docx

Java从入门到放弃一二三四

Java:

从入门到放弃

(一)

面向对象就是对面向过程的封装

java语言发展史

SUN(StanfordUniversityNetwork斯坦福大学网络公司)

1995年5月23日,java语言诞生

1996年1月JDK1.0

1998年12月JDK1.2(将java分成了J2SE,J2EE,J2ME)

2004年10月JDK1.5(改名javaSE5.0)

2009年4月20日,甲骨文74亿美元收购SUN公司

什么是JVM

JVM(JavaVirtualMachine)是java虚拟机,java程序需要运行在虚拟机上,不同平台有自己的虚拟机,因此java语言可以跨平台。

什么是JRE

包括Java虚拟机和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。

什么是JDK

JDK是提供给Java开发人员使用的,其中包含了java的开发工具(编译工具javac.exe打包工具jar.exe等),也包括了JRE。

十进制和二进制数据之间的转换计算

十进制数据转成二进制数据:

使用除以2获取余数的方式

二进制数据转成十进制数据:

使用8421编码的方式

计算机存储单元

无论是内存还是硬盘,计算机存储设备的最小信息单元叫“位(bit)”,我们又称之为“比特位”,通常用小写字母b来表示。

(二进制中,每一个0或者每一个1,都是一个比特)

而计算机最小的存储单元叫“字节(byte)”,通常用大写字母B来表示。

1B=8b1KB=1024B

常用DOS命令

查看当前文件夹dir

进入文件夹命令cd文件夹名

退出到磁盘根目录cd\

清屏cls

三种注释

//单行注释

/*

多行注释

*/

/*

*文档注释

*/

关键字keywords

在程序中,java已经定义好的单词,具有特殊含义(全部都是小写字母)

标识符定义规则

1、可以包含26个英文字母(区分大小写)、数字、$和_

2、不能以数字开头

3、不能是关键字

java中四类八种基本数据类型

数据类型关键字内存占用取值范围

字节型byte1个字节-128~127

短整型short2个字节-32768~32767

整型int(默认)4个字节-231次方~2的31次方-1

长整型long8个字节-2的63次方~2的63次方-1

单精度浮点数float4个字节1.4013E-45~3.4028E+38

双精度浮点数double(默认)8个字节4.9E-324~1.7977E+308

字符型char2个字节0-65535

布尔类型boolean1个字节true,false

long类型:

建议数据后加L表示

float类型:

建议数据后加F表示

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换

自动类型转换:

将取值范围小的类型自动提升为取值范围大的类型

范围小的类型向范围大的类型提升,byte、short、char运算时直接提升为int

byte、short、char

强制类型转换:

将取值范围大的类型强制转换成取值范围小的类型

常用ASCLL码

字符数值

048

A65

a97

变量前++:

先自加再赋值

变量后++:

先赋值再自加

位运算符:

直接对二进制进行计算的

移n位,就是乘以或除以2的n次幂

<

相当于乘以2的n次幂

>>n:

相当于除以2的n次幂

&和&&的区别

1.&和&&都可以用作逻辑与(and)的运算符,当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

2.&&还具有短路的功能,即如果第一个表达式为false,则不再计算第二个表达式。

==与equals的区别

==和equals都是比较的,而前者是运算符,后者则是一个方法,结果都是boolean类型的。

基本数据类型和引用数据类型都可以使用运算符==,如果是基本数据类型,比较的是==两边的值,如果是引用数据类型,比较的是引用变量指向的那个地址值。

而只有引用类型数据才可以使用equals,equals方法是用于比较两个独立对象的内容是否相同。

如果是比较字符串的内容是否相同就用equals方法。

switch中case穿透问题

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运行,直到遇到break,或者整体switch结束

switch(表达式){

case常量:

语句;

break;

default:

语句;

break;

}

Java:

从入门到放弃

(二)

 

访问控制权限

1.private属于私有访问权限,可以用在属性的定义、方法的声明上,一旦使用了private关键字声明,则只能在本类中进行访问。

2.default(默认)访问权限,如果一个类中的属性或方法没有使用任何的访问权限声明,则就是默认的访问权限,默认的访问权限可以被本包中的其他类所访问,但是不能被其他包的类所访问。

3.protected属于受保护的访问权限,一个类中的成员如果使用了protected访问权限,则只能被本包及不同包的子类访问。

4.public属于公共访问权限,如果一个类中的成员使用了public访问权限,就可以在所有类中被访问,不管是否在同一个包中。

 

 

数组概念:

数据就是存储数据长度固定的容器,保证多个数据类型要一致。

数组的定义

数据类型[]数组名=new数据类型[长度];

                =new数据类型[]{元素1,元素2};

                ={元素1,元素2};

定义类,就是定义类的成员,包括成员变量和成员方法。

成员变量的默认值

数据类型                        默认值

整数(byte,short,int,long)  0 

浮点数(float,double)         0.0

字符(char)                    '\u0000'

布尔(boolean)                 false

数组、类、接口                  null

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

成员变量默认初始化,局部变量必须赋值才能使用

成员变量在堆内存中,局部变量在栈内存中

构造方法的定义

方法名与类名相同,首字母大写,没有返回值类型

Scanner类:

一个可以解析基本类型和字符串的简单文本扫描器

Scannersc=newScanner(System.in);

inti=sc.nextInt();

Strings=sc.next();

匿名对象:

没有变量名的对象

创建对象时,只有创建对象的语句,却没有把对象地址值赋值给某个变量。

虽然是创建对象的简化写法,但是应用场景非常有限。

Random类:

该类的实例用于生成伪随机数

Randomr=newRandom();

inti=r.nextInt();

ArrayList类

大小可变的数组的实现,存储在内的数据称为元素。

ArrayListlist=newArrayList<>();

publicbooleanadd(Ee):

将指定的元素添加到此集合的尾部。

publicE remove(intindex):

移除此集合中指定位置上的元素。

返回被删除的元素。

publicEget(intindex):

返回此集合中指定位置上的元素。

返回获取的元素。

publicintsize():

返回此集合中的元素数。

遍历集合时,可以控制索引范围,防止越界。

基本类型 基本类型包装类

byte     Byte

short    Short

int      Integer

long     Long

float    Float

double   Double

char     Character

boolean  Boolean

String类

字符串不变:

字符串的值创建后不能改变。

构造方法

publicString():

初始化新创建的String对象,以使其表示空字符序列。

publicString(char[]value):

通过当前参数中的字符数组来构造新的String。

publicString(byte[]bytes):

通过使用平台的默认字符集解码当前参数中的字符数组来构造新的String。

判断功能的方法

publicbooleanequals(ObjectanObject):

将此字符串与指定对象进行比较。

publicbooleanequalsIgnoreCase(StringanotherString):

将此字符串与指定对象进行比较,忽略大小写。

获取功能的方法

publicintlength():

返回此字符串的长度

publicStringconcat(Stringstr):

将指定的字符串连接到该字符串的末尾。

publiccharcharAt(intindex):

返回指定索引处的char值。

publicintindexOf(Stringstr):

返回指定子字符串第一次出现在该字符串内的索引。

publicStringsubString(intbeginIndex):

返回一个字符串,从beginIndex开始截取字符串到字符串结尾。

publicStringsubString(intbeginIndex,intendIndex):

返回一个子字符串(左闭右开)。

转换功能的方法

publicchar[]toCharArray():

将此字符串转换为新的字符数组。

publicbyte[]getBytes():

使用平台的默认字符集将该String编码转换为新的字节数组。

publicStringreplace(CharSequencetarget,CharSequencereplacement):

将与target匹配的字符串使用replacement字符串替换。

CharSequence是一个接口,也是一种引用类型。

作为参数类型,可以把String对象传递到方法中。

分割功能的方法

publicString[]split(Stringregex):

将此字符串按照给定的regex(规定)拆分为字符串数组。

static关键字

被static修饰的成员可以并且建议通过类名直接访问。

静态代码块:

定义在成员位置,使用static修饰的代码块{}

执行:

随着类的加载执行且仅执行一次,优先于main方法和构造方法执行

Arrays类

publicstaticStringtoString(int[]a):

返回指定数组内容的字符串表示形式

publicstaticvoidsort(int[]a):

对指定的int型数组按数字升序进行排序

Math类

publicstaticdoubleabs(doublea):

返回double值的绝对值

publicstaticdoubleceil(doublea):

返回大于等于参数的最小的整数

publicstaticdoublefloor(doublea):

返回小于等于参数最大的整数

publicstaticlonground(doublea):

返回最接近参数的long(相当于四舍五入)

Java:

从入门到放弃(三)

Java中4个系统定义的常量:

NaN非数值、lnf无穷大、-lnf负无穷大、null空。

继承:

就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。

子类可以直接访问父类中的非私有的属性和行为。

好处:

1.提高了代码的复用性。

2.类与类之间产生了关系,是多态的前提。

子父类中出现了同名的成员变量时,在子类中需要访问父类中非私有成员变量时,需要使用super关键字。

父类中的成员变量私有时,子类是不能直接访问的,可以通过父类中提供的公共的get和set方法。

子类对象调用方法时,会优先在子类中查找有没有对应的方法,若子类中存在就会执行子类中的方法,若子类中不存在就会执行父类中相应的方法。

方法重写:

子类中出现与父类一模一样的方法时,会出现覆盖效果,也称为覆写。

(声明不变,重新实现)

子类可以根据需要,定义特定于自己的行为,即沿袭了父类的功能名称,又根据子类的需要重新实现父类方法,从而进行扩展增强。

重写的注意事项

1.必须要保证子类方法权限大于等于父类权限

2.函数名和参数列表一模一样

3.子类方法的返回值必须小于等于父类方法的返回值范围

super:

代表父类的存储空间标识(父类的引用)

this:

代表当前对象的引用

每次创建子类对象时,先初始化父类空间,再创建子类对象本身,如果父类成员非private修饰,则子类可以随意使用父类成员。

子类构造方法调用时,一定先调用父类的构造方法。

(子类的每个构造方法中均有默认的super(),调用父类的空参构造。

手动调用父类构造会覆盖默认的super()。

super()和this()都必须是在构造方法的第一行,所以不能同时出现。

抽象类

我们把没有方法主体的方法称为抽象方法,把包含抽象方法的类称为抽象类。

修饰符abstract返回值类型方法名(参数列表);

继承抽象类的子类必须重写父类所有的抽象方法,否则该子类也必须声明为抽象类。

抽象类中也可以有构造方法,是供子类创建对象时,初始化父类成员使用的。

未包含抽象方法的抽象类,目的就是不想让调用者创建该类对象,通常用于某些特殊的类结构设计。

接口:

Java语言中的一种引用类型

接口的内部主要就是封装了方法,包含抽象方法(JDK7及以前),默认方法和静态方法(JDK8),私有方法(JDK9)。

接口使用interface关键字定义,它也会被编译成.class文件,但是它和类不是同一种引用数据类型。

接口不能创建对象,实现接口的类需要实现接口中所有的抽象方法,否则它必须是一个抽象类。

抽象方法:

publicabstract返回值类型方法名(参数列表);//默认publicabstract

默认方法:

publicdefault返回值类型方法名(参数列表){}//默认public

静态方法:

publicstatic返回值类型方法名(参数列表){}//默认public,只能通过接口名调用

私有方法:

只有默认方法可以调用

私有静态方法:

默认方法和静态方法可以调用

接口的多实现:

在继承体系中,一个类中只能继承一个父类。

而对于接口而言,一个类是可以实现多个接口的,这叫做接口的多实现。

在接口的多实现中,如果抽象方法有重名的,只需要重写一次。

如果默认方法有重名的,必须重写一次。

接口中存在同名的静态方法不会冲突。

继承的优先级高于实现。

多态:

同一行为具有不同的表现形式

当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,执行的是子类重写后的方法。

引用类型转换

向上转型:

子类类型向父类类型向上转换的过程

向下转型:

父类类型向子类类型向下转换的过程(要求是已经向上转型的子类对象,将父类引用转为子类引用)

instanceof关键字

变量名instanceof数据类型

如果变量属于该数据类型,返回true,如果变量不属于该数据类型,返回false.

final关键字

修饰类:

被修饰的类不能被继承

修饰方法:

被修饰的方法不能被重写

修饰变量:

被修饰的变量不能被重新赋值

对于final修饰的成员变量,要么直接赋值,要么通过构造赋值,只能二者选其一。

引用类型的局部变量被final修饰后,只能指向一个对象,地址不能再更改。

但是不影响对象内部成员变量值的修改。

代码块

普通代码块:

直接在方法或者是语句中定义的代码块

构造代码块:

直接写在类中的代码块,每次实例化对象都会执行构造块中的代码,而且优于构造方法执行

静态代码块:

静态代码块优先于主方法执行,而且只执行一次

类的权限修饰符

外部类:

public/(default)

成员内部类:

public/protected/(default)/private

局部内部类:

什么都不能写

内部类:

将一个类定义在另一个类里面

成员内部类:

定义在类中方法外的类

访问特点:

内部类可以直接访问外部类的成员,包括私有成员。

外部类要访问内部类的成员,必须要建立内部类的对象。

内部类对象格式:

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

内部类仍然是一个独立的类,在编译之后内部类会编译成独立的.class文件,但是前面冠以外部类的类名和$符号。

匿名内部类:

本质是一个带具体实现的父类或者父接口的匿名的子类对象。

(匿名内部类必须继承一个父类或实现一个父接口)

局部内部类:

如果一个类是定义在一个方法内部,那么这就是一个局部内部类。

(只有当前所属的方法才能使用它,出了这个方法就不能用了)如果希望访问所在方法的局部变量,那么这个局部变量必须是有效final的(从java8开始,只要局部变量事实不变,final关键字可以省略)

new父类名(父接口名)(){

//方法重写

};

 

Java:

从入门到放弃(四)

Object类

java.lang.Object是Java语言中的根类,即所有类的父类。

如果一个类没有特别指定父类,那么默认继承Object类。

publicStringtoString():

返回该对象的字符串表示。

(对象的类型+@+内存地址值)

publicbooleanequal(Objectobj):

指示其他某个对象是否与此对象相等。

我们直接输出对象名的时候其实通过该对象调用了toString()方法

Objects类

publicstaticbooleanequals(Objecta,Objectb):

判断两个对象是否相等

Date类

java.util.Date类:

表示特定的瞬间,精确到毫秒。

publicDate():

分配Date对象并初始化此对象,已表示分配它的时间(精确到毫秒)

publicDate(longdate):

分配Date对象并初始化此对象,以表示自动标准基准时间(1970年1月1日00:

00:

00GMT)以来的制定毫秒数。

publiclonggetTime()把日期对象转换成对应的时间毫秒数。

DateFormat类

java.text.DateFormat是日期/时间格式化子类的抽象类,我们通过这个类可以完成Date对象和String对象之间的来回转换。

由于DateFormat为抽象类,所以需要一个常用的子类java.text.SimpleDateFormat

publicSimpleDateFormat(stringpatten):

用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat

publicStringformat(Datedate):

将Date对象格式化为字符串

publicDateparse(Stringsource):

将字符串解析为Date对象

Calendar类

java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。

该类将所有可能用到的时间信息封装为静态成员变量

publicstaticCalendargetInstance():

使用默认时区和语言环境获得一个日历(静态方法创建Calendar类的对象)

publicintget(intfield):

返回给定日历字段的值

publicvoidset(intfield,intvalue):

将给定的日历字段设置为给定值

publicabstractvoidadd(intfield,intamount):

根据日历的规则,为给定的日历字段添加或减去指定的时间量

publicDategetTime():

返回一个表示此Calendar时间值的Date对象

西方星期的开始为周日,在Calendar类中,月份的表示是以0-11代表1-12月

System类

java.lang.System类中提供了大量静态方法可以获取与系统相关的信息或系统级操作

publicstaticlongcurrentTimeMillis():

返回以毫秒为单位的当前时间

publicstaticvoidarraycopy(Objectsrc,intsrcPos,Objectdest,intdestPos,intlength):

将数组中指定的数据拷贝到另一个数组中

StringBuilder类

StringBuilder是个字符串的缓冲区,即它是一个容器,容器中可以装很多字符串。

并且能够对其中的字符串进行各种操作。

它的内部拥有一个数组用来存放字符串内容,进行字符串拼接时,直接在数组中加入新内容。

StringBuilder会自动维护数组的扩容。

public StringBuilder():

构造一个空的StringBuilder容器。

public StringBuilder(String str):

构造一个StringBuilder容器,并将字符串添加进去。

public StringBuilder append(...):

添加任意类型数据的字符串形式,并返回当前对象自身。

public String toString():

将当前StringBuilder对象转换为String对象。

集合

集合:

集合是java中提供的一种容器,可以用来存储多个数据。

集合和数组的区别

数组的长度是固定的。

集合的长度是可变的。

数组中存储的是同一类型的元素,可以存储基本数据类型值。

集合存储的都是对象。

而且对象的类型可以不一致。

Collection:

单列集合类的根接口,用于存储一系列符合某种规则的元素,它有两个重要的子接口,分别是java.util.List和java.util.Set。

其中,List的特点是元素有序、元素可重复。

Set的特点是元素无序,而且不可重复。

List接口的主要实现类有java.util.ArrayList和java.util.LinkedList,Set接口的主要实现类有java.util.HashSet和java.util.TreeSet。

Collection是所有单列集合的父接口,因此在Collection中定义了单列集合(List和Set)通用的一些方法,这些方法可用于操作所有的单列集合。

public boolean add(E e):

把给定的对象添加到当前集合中。

public void clear():

清空集合中所有的元素。

public boolean remove(E e):

把给定的对象在当前集合中删除。

public boolean contains(E e):

判断当前集合中是否包含给定的对象。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 育儿理论经验

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1