JAVA笔记完整版.docx

上传人:b****4 文档编号:5282460 上传时间:2023-05-08 格式:DOCX 页数:146 大小:86.50KB
下载 相关 举报
JAVA笔记完整版.docx_第1页
第1页 / 共146页
JAVA笔记完整版.docx_第2页
第2页 / 共146页
JAVA笔记完整版.docx_第3页
第3页 / 共146页
JAVA笔记完整版.docx_第4页
第4页 / 共146页
JAVA笔记完整版.docx_第5页
第5页 / 共146页
JAVA笔记完整版.docx_第6页
第6页 / 共146页
JAVA笔记完整版.docx_第7页
第7页 / 共146页
JAVA笔记完整版.docx_第8页
第8页 / 共146页
JAVA笔记完整版.docx_第9页
第9页 / 共146页
JAVA笔记完整版.docx_第10页
第10页 / 共146页
JAVA笔记完整版.docx_第11页
第11页 / 共146页
JAVA笔记完整版.docx_第12页
第12页 / 共146页
JAVA笔记完整版.docx_第13页
第13页 / 共146页
JAVA笔记完整版.docx_第14页
第14页 / 共146页
JAVA笔记完整版.docx_第15页
第15页 / 共146页
JAVA笔记完整版.docx_第16页
第16页 / 共146页
JAVA笔记完整版.docx_第17页
第17页 / 共146页
JAVA笔记完整版.docx_第18页
第18页 / 共146页
JAVA笔记完整版.docx_第19页
第19页 / 共146页
JAVA笔记完整版.docx_第20页
第20页 / 共146页
亲,该文档总共146页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA笔记完整版.docx

《JAVA笔记完整版.docx》由会员分享,可在线阅读,更多相关《JAVA笔记完整版.docx(146页珍藏版)》请在冰点文库上搜索。

JAVA笔记完整版.docx

JAVA笔记完整版

1.Basic

Linux操作

1)Linux是模仿UNIX的操作系统,是山寨版的Unix

2)Linux命令

pwd打印当前工作目录

cd改变工作目录

ls显示目录的内容,默认显示当前目录内容

mkdir创建目录

rm

cp

cat

mv源文件目标文件改名或者移动文件、文件夹

1)目标文件如果是新文件/文件夹就进行改名操作

2)如果目标是已经存在的文件夹,就发送移动操作

3)源文件必须存在,否则有错误!

more分屏显示结果

grep根据条件(正则表达式)在结果中过滤

telnet远程登录命令

telnet192.168.0.20

user:

openlab

pwd:

open123

bash切换Shell为baShell

exit离开命令

/sbin/ifconfig查看当前电脑的IP地址

sshusername@ip

sshsoft01@192.168.23.124登录到另外一台电脑192.168.23.124

echo

|管道符合,作用:

将第一个命令的输出,作为第二个命令的输入

如:

ls/etc|more

ls/etc|greppass

在第一个命令结果中匹配,包含pass的行留下来

Java应用开发

1)编写Java源文件(文本文件)(记事本,Eclipse)

2)编译为.class字节码文件

3)使用Java虚拟机执行.class字节码文件

计算机只能处理2进制的数据和指令

java源文件是人能够看懂的程序脚本

经过变编译器编译为计算机能够处理的2进制数据和指令

在进一步有计算机执行和处理!

计算机只能处理数据!

任何软件的功能最终都要转换为数据计算!

JDK(文件夹/opt/jdk也可能是/opt/jdk1.6.0_01)

|--bin(javajavacjarrmicjpsnative2ascii等命令)

|开发工具命令

|--lib(tools.jar)是开发工具命令的实际实现

|--jrejava运行环境

|--binjava_vmjava的虚拟机

|--lib

|--rt.jar是Java系统API库、系统类库

|--java.util.Scanner

echo命令:

回显

如:

echoabc就会在屏幕上显示abc

PATH是Linux操作系统的环境变量

$PATH是读取变量的值

echo$PATH命令就是将$PATH取回的变量值显示到屏幕

简单说就是看看PATH变量的值

PATH变量的作用:

操作系统可执行命令的搜索路径,操作系统

在执行命令时候,逐一搜索PATH指定的路径,找到命令执行

如果找不到就报错误:

commandnotfound

export导出命令,可以用来修改环境变量

exportPATH=/bin

在终端窗口中的环境变量设置,只在当前窗口中生效。

关闭就取消了

安装JDK以后要配置环境变量

1)配置PATH,目的是将Java开发工具命令,扩展为系统命令

PATH=/opt/jdk/bin:

$PATH

exportPATH

2)JAVA_HOME环境变量是Java的环境变量,作用是指示java应用

软件找到Java的安装目录(/opt/jdk)

JAVA_HOME=/opt/jdk

exoprtJAVA_HOME

3)CLASSPATH环境变量是Java的环境变量,作用是指示Java在

运行期间Javaclass文件的搜索位置

CLASSPATH=.

exoprtCLASSPATH

Linux系统的配置在:

/etc/profile文件中配置好了

/etc/profile是系统初始化脚本,在系统开机时候会自动执行

2进制计数规律

二进制补码!

成本考虑,为省钱!

以4位补码为例

1)将高位为1的大数,作为负数使用!

最高位称为符号位.

2)计算时候如果超过4位数,多出数位自动溢出舍弃.

3)在不超过范围情况下,补码运算满足数学规则

4)缺点数字有范围,不能进行超范围计算

补码的取反对称现象:

-n=~n+1

符号位扩展现象:

低位数补码扩展为高位数补码:

正数补0负数补1

-5的补码:

-5=~5+1

2.Oop

Day01

对象:

就是一件东西,任何存在的事物都是对象,一切皆对象。

对象在业务逻辑上是一个事物个体

对象在本质上是结构化数据

对象的每个数据成员称为对象属性(实例变量)

类:

对象的类型,是名词概念,

本质上是对象的数据结构定义

类中声明的对象的属性

对象属性在类中声明,运行期间在堆内存中分配对象(对象属性)

(不运行,Java中不分配内存)

引用:

引用变量,业务逻辑上引用对象的代词,本质上存储的值是对象的首地址,通过首地址间接引用了对象

引用类型变量的值,不是直接的对象,是通过地址间接访问对象。

应用本身不是对象。

方法:

对象的行为(功能)

如:

方块的移动。

方法的行为(功能)的实现是利用算法操作对象数据实现的

重载的方法调用规则

java根据参数类型,尽可能简单转换的原则调用重载方法(就近原则)

5先是intlongfloatdouble

Day02

对象:

“存在“的事物,本质是结构化”数据“

如:

一个窗口框(位置,宽高等),一个面板(大小),一个T型方块(4个格子),一个小格子(行,列,颜色)

对象的属性(对象的数据),也称为:

实例变量

类:

用类创建对象,需要先声明类,类是对象的抽象结构定义,对象的属性是定义在类中的

对象的属性是定义在类中的。

使用new运算调用构造在堆中分配内存创建对象。

对象都在堆(内存)中创建。

构造器:

创建并且初始化属性的过程。

名称与类名一致,不能声明返回值。

可以有参数,参数是创建对象的前提条件。

方法:

对象的行为:

moveDown()

方法是业务功能的体现,本质是利用算法操作数据(对象)实现。

继承:

被继承的类型是父类型(SuperClass)继承类型是子类型(SubClass)

1)子类继承父类中所有可继承资源

属性如:

cells

方法(私有除外)如:

moveDown()

所有子类共享了父类的方法

2)私有方法不继承,构造器不可继承

3)父类可以定义引用子类型实例,向上造型

Tetrominot=newI();

Tetromonot=newT();

注意:

Java按照"变量类型"检查是否调用方法。

4)子类型可以利用重写(覆盖)修改父类型的方法。

如:

paint()方法,修改了系统默认的绘图功能。

重写的方法,动态调用的是子类型对象的方法(动态绑定)。

5)属性是根据变量类型进行访问的。

6)默认构造器现象。

implicit含蓄的,暗示的,盲从的

duplicate复制,使加倍

重载与重写的区别

重写:

是子类型定义与父类型”一样的方法“,用于子类型修改父类的方法!

最重要的是”修改“!

修改以后,在运行期间执行的是子类对象的方法

父类型的方法就别替换掉(修改)了。

语法:

1)子类方法名与父类一样,参数与父类相同,

2)修饰词可以放大,异常可以具体化(小类型)

3)父类的私有方法,不能继承,就不能别重写!

4)运行期间动态调用对象类型的方法

重载:

是类中(含父子类型)方法名一样,功能类似,参数不同的方法。

1)方法名一样,参数列表不同的方法

2)目的是使API的设计更加优雅

3)根据方法名和参数的类型调用对应的方法

println(int)println(65);

piritln(double)println(char(65));

println(char)println(65.25);

Day03

访问控制(访问修饰):

控制属性,方法,类的可见范围

public修饰类,属性,方法,构造器,内部类等,在任何地方都可见

protected只能修饰类的成员,在类体中使用,在当前package中可见(很少使用package作为访问范围),保护的成员主要留给子类使用的资源

默认的在当前package中可见,很少使用

private只能修饰类的成员,在类体中使用,是彻底封装,仅在类内部可见。

使用原则:

尽可能私有,留给子类使用保护。

减少使用公有,默认的几乎不使用

常见方式:

私有属性,公有使用方法(getset方法)

Java源文规格

package{0,1}

import{0,n}

publicclass{0,1}只能有一个共有类,而且文件名与共有类一致

class{0,n}一个文件中的多个类都是默认的

如果没有共有类,那么文件名和任意类名一致

只有共有类才能在其它包中访问,默认类只能在当前包中访问

一般情况下,一个文件一个共有类!

Day04

static静态的,可以修饰类的成员,在类体中使用

可以修饰属性,方法,代码块

静态的资源都是属于类的

静态属性:

是属于类的属性,在类加载期间初始化,并且只有一份,通过类调用

如:

图片素材只加载一次就够了

静态方法:

是属于类方法,使用类名调用,经常作为工具方法/工厂方法,静态方法没有隐含参数

this,与当前对象无关,不能访问当前对象(this)的方法,属性

静态代码块:

在类中声明,在类加载期间执行,只执行一次

用于加载一次的静态资源,如:

图片素材

final

finalclass不能被继承

final方法不能被重写

final变量用的多,"final变量"只能初始化,不能再修改了

finalinta=5;//变量a的值不能再次修改

//ary是引用变量,值是地址值,通过地址间接引用了数组

finalint[]ary={5,6};//变量ary的值不能被修改了

ary=newint[3];//错误变量的值不能再修改了ary里面存放的数组的地址不能修改了

ary[0]+=4;//可以修改

staticfinal常量

定义软件中,不变化的常数:

CELL_SIZE

命名:

使用全大写命名,多个单词使用下划线隔开

区别:

常量与字面量

对象数组元素是对象的数组,实际上元素是引用类型变量

Cell[]cells=newCell[4];//创建数组,但元素是空

Cell[]line=newCell[10];

cells=newCell[]{newCell(0,4),newCell(0,3),newCell(0,5),newCell(1,4)}

二维数组本质上是一维数组

抽象类

业务方面:

表达了抽象的概念,与具体相反

抽象概念包括抽象行为,如:

饮料一定可以打开,由具体饮料类型决定

语法方面:

1)使用abstract关键字定义抽象类

2)抽象类中可以定义抽象方法

3)抽象类可以定义变量,引用子类型对象

4)抽象类不能直接创建对象

5)抽象类只能被继承

6)继承抽象类,必须事项全部的抽象方法

Tetromino,就应用的是抽象类

如果直接创建4格方块,移动的方法是不能够执行的

改热键

这个方法可以给eclipse恢复出场设置

删除/home/tarena/works/.metadata/**源数据文件夹*/

cd/home/tarena/works/.metadata

ls-a

rm-rf.metadata

要启动eclipse导入

Day05

尽量封装

抽象类

1)使用abstract关键字声明的类。

2)表示逻辑上的抽象概念,如:

4格方块

3)抽象类不能直接实例

4)抽象类只能被继承

5)抽象类可以定义变量,引用具体类的实例

抽象类的实例是多种多样的--多态现象

如:

4格方块的具体实例是多种多样的

6)抽象类中可以定义抽象方法,代表必须由子类实现的抽象的功能,抽象方法规范了子类的方法。

抽象方法:

使用abstract关键字定义,有方法名,没有方法体,必须有子类实现的方法。

抽象类:

TimerTask规范了子类必须实现run()方法。

实现API与使用者的约定。

接口

1)是纯抽象类,接口(interface)中只能定义抽象方法,和常量

2)子类可以实现(implements)多个接口,就是Java中的多继承现象

3)接口可以定义变量,引用子类型实例

4)接口也用于定义软件的规约

内部类

1)在类内部,或者方法中定义的类

2)使用目的,是为了封装类的定义范围,在类内部使用

软件中类:

1)共有类任何地方都可见

2)默认类当前包中可见

3)内部类类内部

4)匿名内部类当前方法中

匿名内部类--匿名类

1)语法简洁:

newXoo(){};

2)在方法中定义的内部类,作用域是当前方法。

3)内部类包括匿名内部类,都会编译为一个独立的.class文件(只要是类)

4)常用匿名内部类在方法中简洁的实现接口或者抽象类

5)匿名类中的方法经常被回调执行

如下代码:

run()方法被定时器timer,在适当的时间,执行,实际上是将run方法交给了Timer,

由Timer在适当的时候,被Timer回调执行

Timertimer=newTimer();

timer.schedule(newTimerTask(){

publicvoidrun(){

System.out.println("HI");

}

},0,1000);

3.Se

Day01

Object类

java中所有的类都直接或者间接的继承自Object。

所以java有一句话是一切接对象

当我们定义的类没有显示的继承任何类的时候

jvm在编译时会自动默认将该类继承自Object

这个是一个强制性的。

所以,通常我们不需要显示的继承Object

Object方法:

publicStringtoString():

在Object中该方法返回的字符串为该对象的“句柄”。

格式为"类名@hashcode"。

java定义Object的toString方法,希望我们在需要的时候可以重写。

该方法的真是意图是返回能够描述该对象的一个字符串。

equals方法

publicbooleanequals(Objecto)

比较两个对象内容是否相等。

Object对该方法的实现就是使用"=="实现的。

所以毫无意义。

若要判断两个对象内容是否相同,应重写该方法。

定义对象内容的比较规则。

对于引用类型来讲:

"==":

判断是否为同一个对象

"equals":

判断两个对象是否"长得像"

clone方法:

publicObjectclone()

该方法返回当前对象的一个副本。

渐层复制实现。

hashcode方法

publicinthashcode()

返回一个int值。

该方法在具有哈希算法的地方非常有用。

后面会讲。

字符串

String类

java.lang.String类的实例用于封装一个字符序列。

一个字符串中的每个字符都对应的是一个unicode编码,换句话说,一个字符对应两个字节保存在内存中。

字符串内部维护着一个char数组。

用于保存这个字符串。

char占2字节,每个字符用unicode编码保存

字符串对象为不变对象,一经创建不可改变。

一旦对字符串进行修改操作,会创建新的对象

java对字符串操作的优化

java中允许我们将一个字符串字面量赋值给字符串引用类型变量。

例如:

引用类型变量字面量

Stringstr="Hello";

Stringstr2="Hello";

在语法上看来更像是对基本类型变量赋值。

处于性能的考虑,java对字面量产生的字符串进行了缓存。

将他们缓存在字符串的常量池中。

对于重复出现的字面量赋值,jvm会先查找常量池中是否有过这个字符串,若有则直接引用,减少字符串对象的创建。

节省内存资源。

字符串常用方法:

StringtoLowerCase():

将英文转换为小写

StringtoUpperCase():

将英文转换为大写

Stringtrim():

去掉字符串两边的空白

booleanstartsWith(Stringprefix)

查看当前字符串是否以给定字符串开头。

booleanendsWith(Stringprefix)

查看当前字符串是否以给定字符串结尾。

intlength()

返回当前字符串的字符总数

intindexOf(Stringstr)

返回给定字符串在当前字符串中第一次出现的位置。

这个位置是给定字符串首字符在当前字符串中的位置。

若给定字符串在当前字符串中不包含返回-1

intindexOf(Stringstr,intfromIndex)

从fromIndex指定的位置开始查找给定字符串

是否在当前字符串中存在。

intlastIndexOf(Stringstr)

返回给定字符串在当前字符串中最后一次出现的位置。

charcharAt(intindex)

返回当前字符串中指定位置的字符

Day02

字符串方法

Stringsubstring(intstartIndex,

intendIndex)

截取当前字符串,从startIndex开始截取到endIndex,并将截取的字符串返回。

该方法截取的字符串不包含结束索引对应的字符。

JDK中提供的方法,通常用两个int描述一个范围的时候,都是"含头不含尾"的

重载方法

Stringsubstring(intstartIndex):

截取当前字符串,从startIndex开始截取到字符串末尾,并返回。

byte[]getBytes(StringcharsetName)

将当前字符串按照给定的字符集进行编码,并返回编码后的字节数组

编码:

将特定的数据按照某种方式转换为2进制的过程称为编码

数据--->2进制

解码:

将2进制的内容按照某种方式转化为特定数据的过程称为解码

2进制--->数据

字符集编码:

gbk:

国标编码简体中文编码集

gb2312:

繁体中文编码集

iso8859-1:

欧洲常用的一种编码集

UTF-8:

世界最通用的编码集。

也是最常用的

字符串中支持正则表达式的方法

正则表达式:

以一个特殊的字符串来描述一个格式。

让程序

按照这个格式去验证字符串。

那么用于描述格式的这个字符串就是正则表达式。

正则表达式的语法

[]:

方括号中可以列举出现的内容,任选其一

方括号代表一个字符。

[abc]:

可以出现一个字符,只能是a或b或c

[^abc]:

可以出现一个字符,但不能是abc

[a-z]:

只能出现一个小写英文字母

a-z表示一项,只不过是一个范围

[a-zA-Z0-9]:

描述一个字符,可以是任意数字或字母

[a-z&&[^bc]]:

a-z但不能是b或c

.:

"."用来描述任意一个字符

\d:

描述任意一个数字等同于[0-9]

\D:

描述任意一个非数字字符等同[^0-9]

\s:

任意一个空白字符

\S:

描述任意一个非空白字符

\w:

任意一个单词字符等同[a-zA-Z_0-9]

\W:

任意一个非单词字符等同[^\w]

正则表达式中的量词

?

:

表示前面的内容出现0-1次

[\w]?

要么有要么没有一个单词字符

*:

表示前面的内容出现0-任意次

[\d]*任意个数字

[0-9]*

+:

表示前面的内容出现1-任意次

[\d]+1个以上数字

{n}:

表示前面的内容出现n次

[\d]{11}出现11位数字

{n,m}:

表示出现最少n次最多m-1次

{n,}:

表示出现n次以上

():

圆括号用于将其内部内容看做一个整体

例如:

[abc]+:

aababa

(abc)+:

abcabcabc

[\w]+@[a-zA-Z0-9]+(.com|.cn|.net)+

String[]split(Stringrex)

拆分字符串

根据给定的正则表达式,按照满足的部分进行拆分,将拆后的每部分存入数组并返回

拆分时要注意,若根据拆分的正则表达式后面没有任何内容,则后续的拆分全部抛弃不要。

StringreplaceAll(Stringrex,Stringreplcement)

将当前字符串中满足正则表达式的部分替换为给定的字符串,并将结果返回。

commons-lang.jar

Apache的一个子项目

该包对java.lang下的类做了一些功能上的补充。

该包下有一个类叫做StringUtils

该类提供了若干静态方法。

这些方法是对

java.lang.String类的功能的补充。

Day03

StringBuilder

和String不同,该类的实例封装了一个可变字符序列。

当我们需要对一个字符串进行频繁修改的时候,应首先选取该类来完成。

常用构造方法:

StringBuilder():

创建一个不含有任何字符的StringBuilder

StringBuilder(Stringstr)

创建一个包含str字符串的StringBuilder

StringBuilder提供了用于修改字符串内容的方法:

append():

向当前字符串末尾追加新内容

delete():

删除字符串中的部分内容

insert():

向字符串的指定位置插入新内容

replace():

替换字符串中部分内容为新内容

StringBuffer

用法和功能与StringBuilder一模一样。

StringBuffer是线程安全的。

Date类

Date类的实例用于描述一个日期和时间

在以后的开发中,我们仅仅使用该类的实例去描述一个时间。

对于时间的操作,我们不要再使用该类来完成。

Date的设计存在千年虫问题。

构造方法

Date():

创建一个用于描述当前系统时间的Date对象

Date重写了toString方法,该方法返回的字符串是用来描述它所描述的时间的。

常用方法:

longgetTime():

获取当前对象描述的时间的毫秒值

所谓时间的毫秒值指的是从1970年的1月1日的0点0分0秒到这个时间点的毫秒值。

SimpleDateFormat

该类可以在Date与String之间相互转换。

可以根据我们希望的格式将日期转换为字符串,反之也可以。

DateFormat

DateFormat是Sim

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

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2