2019年Java学习笔记精彩版
java-课堂笔记-第一章至第八章知识点梳理
Java-课堂笔记-第一章至第八章知识点梳理1.控制台程序开发1.1 开发Java程序的步骤(1)编写源程序:Java源程序文件后缀名.java(2)编译源程序:使用javac命令编译源程序,编译之后的文件后缀名.class (3)运行使用java命令运行编译之后的.class文件1.2 程序开发环境记事本、Eclipse或MyEclipse1.3 控制台输入/输出(1)从控制台输入信息使用Scanner对象第一步:创建一个Scanner扫描器对象Scanner input = new Scanner(System.in);第二步:导入Scanner包import java.util.Scanner;第三步:获取从控制台输入的整数int num = input.nextInt();获取从控制台输入的小数double num = input.nextDouble();获取从控制台输入的字符char ziFu = input.next().charAt(0);获取从控制台输入的字符串String str = input.next();(2)从控制台输出信息使用System.out.print();System.out.println();转义字符:\n:换行\t:一个制表符(8个空格)1.4 程序注释Java中的注释有3种:(1)单行注释://这里是注释内容(2)多行注释:/*这里是注释内容*/(3)文档注释:/**这里是注释内容*/1.5 程序调试2.变量和运算符2.1 变量变量:变量就是变化的量,是数据存储空间的表示,即数据在内存空间地址的别名(1)变量的声明语法:数据类型变量名;举例:int score;//声明一个int类型的变量score,保存成绩(2)变量的赋值(初始化)基本数据类型的赋值使用“=”赋值语法:变量名 = 值;举例:score = 98;引用数据类型使用new关键字语法:数据类型变量名 = new 数据类型();举例:Scanner input = new Scanner(System.in);2.2 常量2.3 运算符(1)赋值运算符:=、+=、-=、*=、/=、%=举例:sum += i;//相当于sum = sum + i;(2)算术运算符:+、-、*、/、%(3)关系运算符:>、<、>=、<=、==、!=(4)逻辑运算符:&&、||、!(5)自增运算符:i++或++ii++ 相当于 i = i + 1;(6)自减运算符:i--或--ii-- 相当于 i = i - 1;(7)三目运算符:?:3.数据类型与数组3.1 数据类型(1)基本数据类型整型:byte、short、int、long浮点型:float、double字符型:char布尔型:boolean(2)引用数据类型String、数组、类(class)、接口(3)数据类型转换自动数据类型转换自动数据类型转换的条件1.目标类型和源类型数据类型要兼容,数值类型(整型和浮点型)相互兼容2.目标类型要大于源类型,double型可以存放int型数据,因为double型变量分配的空间宽度足够存储int型变量强制数据类型转换语法:(数据类型)表达式;3.2 数组(1)数组的基本用法数组声明语法:数据类型[] 数组名;或数据类型数组名[];数组分配空间语法:数组名 = new 数据类型[数组长度];数组赋值静态赋值:给数组元素单个赋值如:scores[0] = 98;scores[1] = 87;动态赋值:使用for循环动态给数组元素赋值如:for(int i=0;i<scores.length;i++){ //每次循环把输入的数值赋值给数组元素scores[i] = input.nextDouble();}直接创建数组:方式一:数据类型[] 数组名={值1,值2,值3,....};方式二:数据类型[] 数组名=new 数据类型[]{值1,值2,值3,..};访问数组元素:语法:数组名[下标值];获取数组长度:语法:数组名.length;(2)数组应用数组排序:1.import java.util.Arrays;//导入Arrays工具包2.Arrays.sort(数组名);求最大值:(见第七章数组课堂笔记)求最小值:(见第七章数组课堂笔记)4.流程控制语句4.1 分支结构(选择结构)(1)if选择结构if(判断条件){执行语句;}(2)if-else选择结构if(判断条件){执行语句1;}else{执行语句2;}(3)多重if选择结构if(判断条件1){执行语句1;}else if(判断条件2){执行语句2;}else if(判断条件3){执行语句3;}else{执行语句4;}(4)嵌套if选择结构if(判断条件1){if(判断条件2){执行语句1;}else{执行语句2;}}else{执行语句3;}(5)switch选择结构switch(表达式){case 常量1:代码块1;break;case 常量2:代码块2;break;case 常量3:代码块3;break;.......default:代码块n;break;}4.2 循环结构(1)while循环while(循环条件){循环操作;}特点:先判断,后执行(2)do-while循环do{循环操作;}while(循环条件);特点:先执行,后判断(3)for循环for(循环初始变量;循环条件;循环变量的更新){循环操作;}循环次数固定的时候,优先选用for循环while、do-while、for三种循环的对比,需要重点看下4.3 跳转语句(1)break用在switch选择结构中,表示跳出switch选择结构用在循环结构中,表示跳出整个循环或结束整个循环用在二重循环结构中,表示结束内层循环,继续执行外层循环(2)continuecontinue只能用在循环结构中,表示结束本次循环,进入下一次循环用在二重循环结构中,表示结束内层循环的本次循环,进入下一次循环(3)return。
java疯狂课件个人总结笔记
高级语言运行机制 (2)java 编译路径 (2)java垃圾回收机制(GarbageCollection ) (3)结构化开发、面向对象、基于对象(javascript) (4)生成API文档 (4)参数 (5)运算符 (7)JAVA关键字 (9)流程控制 (9)数组 (11)面向对象上 (13)成员变量 (15)局部变量 (16)变量的使用规则 (16)封装 (17)继承 (18)组合 (18)初始化块 (18)面向对象下 (20)加强封装类(wrapper class ) (20)处理对象 (21)补充 (31)高级语言运行机制1. 高级语言运行机制可分为编译型和解释型;编译型语言是指用专门的编译器对专门的操作系统进行一次性的“翻译”为机器码,编译生成的可执行文件可以脱离开发环境在专门的平台上运行。
运行效率高。
但是移植到其他平台需要进重新编译或者修改所以移植性比较差,比如C/C++;解释型语言是指用专门的解释器对源程序进行逐行翻译成特定的机器码并立即执行。
因为每次执行都需要解释解所以释型语言效率较低。
但是移植性较好,如Ruby。
而java是一种先编译后解释的语言;java源代码由编译器进行编译,生成字节码文件(*.class),生成的字节码是不可执行文件并且与平台无关直接面向JVM,经过JVM的解释后生成可执行文件。
不同平台的JVM是不同的但是对生成的字节码文件有同样的接口,所以在保证效率的情况下又有很好的移植性。
2 JVM标准:指令集寄存器类文件的格式垃圾回收堆栈存储区java 编译路径1. javac -d . helloworld.java (“-d”代表字节码存储路径,“.”是当前路径也可是本地磁盘上的其他有效路径)2. 临时指定JRE搜索Java类的路径可使用“-classpath”:java -classpathdir1;dir2;..........;dirN. WIN 分隔符为“;”linux 平台上以":" 分隔。
2019年JAVA葵花宝典精华版.doc
Java葵花宝典精华1、面向对象的特征有哪些方面1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。
抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。
抽象包括两个方面,一是过程抽象,二是数据抽象。
2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。
派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
3.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。
面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。
4. 多态性:多态性是指允许不同类的对象对同一消息作出响应。
多态性包括参数化多态性和包含多态性。
多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。
2、String是最基本的数据类型吗?基本数据类型包括byte、int、char、long、float、double、boolean和short。
ng.String类是final类型的,因此不可以继承这个类、不能修改这个类。
为了提高效率节省空间,我们应该用StringBuffer类3、int 和Integer 有什么区别Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。
Int是java的原始数据类型,Integer是java为int提供的封装类。
Java为每个原始类型提供了封装类。
原始类型封装类booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble引用类型和原始类型的行为完全不同,并且它们具有不同的语义。
java学习总结ppt.doc
java学习总结ppt篇一:Java学习笔记Java学习笔记一、安装与工具软件1JAVA环境变量的配置1.1配置JdK安装路径:变量名java_myhome,变量值c:\Java\jdk1.8.0_112 1.2配置JdK命令文件路径path:变量名path,变量值(增加到前面):.;%java_myhome%\bin;其中点为当前路径的意思,注意各环境变量间要用分号隔开。
1.3配置类库文件的路径:变量名classpath,变量值:c:\Java\jdk1.8.0_112\lib,新版JAVA不用设置,这只使用于早期版。
2java编译命令与文件夹2.1流程:源文件(java)---编译器(javac)----字节码文件(class)----解释器(java)----显示结果(用户)2.2文件夹:bin应用程序工具命令,lib类库,db安装javadb的路径,include平台头文件,jre运行java的jre环境,javafx-src.zip为javafx核心类库的源代码,src.zip为核心类库的源代码,其它文件为说明性文档。
33.13.23.33.43.53.63.73.8ide工具:Eclipse的操作:代码辅助快捷键:alt+/代码自动补全快捷键:ctrl+alt+/快速输入命令:在输入Syso时按下alt+将快速补齐所有命令。
单步跳过:f6,不进行调用方法的内部。
(需要设置断点,才有意义)单步跳入:f5,进入调用方法的内部。
(需要设置断点,才有意义)运行:ctrl+f11调试:f11操作步骤:创建java项目(一级目录)----创建程序包(在二级目录src 与bin中创建包文件夹)----编写java源程序(在src下的包文件夹目录下)----运行java程序(在bin下的包文件夹目录下)3.9学习技巧:多看、多想、多练、多问、多总结二、JAVA基础4数据类型4.10引用数据类型:字符串(String)、数组(Arrays)、类(class)、接口(Interface)4.11基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。
JavaEE学习指导和笔记(2019版)
导言
1.主动学习(边阅读边思考) 识别重要信息/整理归纳(读书笔记 or 思维导图)/记下来/测试自己,记笔记的话推荐使用 康奈笔记法。
2.学习的位置 a)在家里或者宿舍一个固定位置学习 b)咖啡厅(消耗了金钱和交通时间)/不同环境可以促进学习 c)学习环境比较浓郁的地方(不努力就会落后)
long: 8 个字节 float:4 个字节
A:它们底层的存储结构不同。 B:float 表示的数据范围比 long 的范围要大
double 双精度:
第 8 页 共 134 页 JAVA 学习指导 CSDN 可乐橘猫
double 数据类型是双精度、64 位、符合 IEEE 754 标准的浮点数; 浮点数的默认类型为 double 类型; double 类型同样不能表示精确的值,如货币; 默认值是 0.0d; 例子:double d1 = 123.4。
float 和 double 的最小值和最大值都是以科学记数法的形式输出的,结尾的"E+数字"表示 E 之前的数字要乘以 10 的 多少次方。比如 3.14E3 就是 3.14 ×103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。 注意:
整数默认是 int 类型,浮点数默认是 double。 长整数要加 L 或者 l。 单精度的浮点数要加 F 或者 f (3) 引用数据类型 所有引用类型的默认值都是 null class string interface
定义一个值以供 switch 选择 继续 默认 运行 否则 循环 如果 实例 返回 根据值选择执行 循环 断言表达式是否为真 捕捉异常 有没有异常都执行 抛出一个异常对象 声明一个异常可能被抛出 捕获异常 引入 包 布尔型 字节型 字符型 双精度浮点 单精度浮点 整型 长整型 短整型 父类,超类 本类 无返回值 是关键字,但不能使用 是关键字,但不能使用 空
2019年Java基础入门_课后习题答案__16
class Square implements Shape{
public double area(double sideLength) {
return sideLength*sideLength;
}
}
class Circle implements Shape{
public double area(double r) {
for (int i = 1; i < 100; i++) {
if (i % 2 != 0)
sum += i;
}
}
}
2、参考答案
public class Test02{
public static void main(String args[]) {
int y = function(0);
}
public static int function(int x) {
接口可以说是一种特殊的抽象类,接口中只能定义常量和抽象方法。由于接口的特殊性,在定义时需要使用interface关键字。
六、编程题
1、参考答案
class Student{
public String name;
public int age;
public Student(String name,int age){
6、π、e
7、Random、
8、length()
9、静态
10、edcba
二、判断题
1、错2、错3、对4、错5、对
三、选择题
1、C 2、C 3、D 4、C 5、C 6、B 7、C 8、A 9、A 10、B
四、程序分析题
1、程序编译能通过,输出结果如下
java学习笔记
Java学习笔记Java概述java语言是解释执行,java源码是通过编译生成一种特殊的.class的中间字解码文件,然后再有JVM进行解释执行。
java语言对指针进行了上层的封装,它保证能够通过这个指针(引用)来访问有效的内存单元。
java语言不允许多继承,使继承关系成树装图,每个类都只能由一个父类。
java语言的开发效率高,但执行效率低。
(相当于c++的55%)java的垃圾回收机制,在java中new的对象不需要向c++一样进行delete操作,JVM会根据情况回收垃圾对象。
(懒汉机制,等待资源没有的时候才回收)我们只能够建议JVM进行垃圾回收,例如(System.gc() RunTime.gc()这两个方法就是建议JVM进行垃圾回收的方法)JDK,java开发工具包(类库和运行命令),JRE,java运行环境,JVM,java虚拟机(解释执行的核心,对字节码进行翻译成运行环境的机器码,它可以屏蔽平台差异。
JVM是不跨平台的。
)JAVA_HOME,指明JDK安装的位置,CLASSPATH,指明类文件的位置,PATH,指明命令的可执行文件的位置。
java源文件的文件名必须和文件中定义public class的类名(大小写页要相同)相同。
java源代码中的main方法的定义写法。
main方法是程序的入口。
public static void main(String[] args){System.out.println("Hello world");}java源文件也要先编译,使用javac xxx.java格式的命令得来编译,使用java xxx来运行。
定义包结构要放在有效代码的第一行,package xxx.xxx,包的定义在一个程序中只能由一个,在加上包定义之后编译可以使用javac -d 路径xxxx.java,这个-d这个命令行的参数可以指定包结构的位置“.”代表当前目录。
java培训笔记(全)
day01计算机分类1.PC机:家用个人电脑2.服务器:处理大量数据的超级计算机3.智能终端:手机,IPAD4:嵌入式设备:除了上面三种以外,带CPU的Windows操作系统--------PC机Linux操作系统--------其他三类java程序主要是服务器端程序一、Java开发环境(一)、认识Linux系统1.Linux是操作系统,并且开源(开放源代码,免费)2.java主要用于服务器端开发,而Linux是主流的服务器操作系统,所以java 应用部署环境多为LinuxLinux与Windows的差别1.文件结构不同,Windows以盘符为单位,盘符里面是文件夹,而Linux以目录为单位2.外部设备映射不同Windous----盘符Linux-------挂载点3.安全级别不同,Linux比较高,而Windows较低注:/:根目录/home/soft01:主目录Linux常用命令pwd:显示当前工作目录ls:显示当前工作目录的内容cd:改变当前工作目录JDK目录:/opt/jdkEclipse:/usr/local/eclipse蓝色:文件夹红色:压缩文件黑色:文件绿色:可执行文件(二)、Java开发环境1.不同操作系统的编码指令是不同的(0,1不同)2.java编译运行过程编译期:.java源文件编译为.class字节码文件运行期:JVM加载.class并运行.class注:JA V A能实现跨平台3.JDK、JRE、JVM的关系JDK----Java Development Kit(Java开发工具包)除了包含JRE,还包括开发JA V A程序所需的编译、运行等等工具JRE----Java Runtime Environment(Java运行环境)提供运行JA V A程序所需要的环境,包括JVM和JA V A系统类库JVM----Java Virtual Machines(Java虚拟机)加载并运行字节码文件运行JA V A最小环境-------JRE开发JA V A最小环境-------JDKJA V A_HOME:指向jdk安装路径CLASSPATH:类(.class)路径,一般简写为“.”PATH:指向jdk下的bin路径,bin中包括javac,java等等命令。
JAVA学习笔记基础知识.doc
JDK :可以开发编译与运行JAVA程序的工具。
JRE:可以运行JAVA程序的工具。
JVM:java虚拟机,是在一台计算机上山硬件或软件模拟的计算机。
它的功能是读取并处理编译过的字节玛文件(class文件)环境变量:path:JDK 中bin 目录classpath:.java_home:JDK 的路径homc_path: JDK 的路径开始一>Sitj->cnid->java -versionJavaSE—Oraclc 今JavaEEJava版木:JavaSE:J2SEJavaEE:J2EEJavaME:J2MEJAVA文件类型:.java文件:源文件,保存JAVA源代码,文本文件。
.class文件:类文件,保存字节码,二进制文件。
使用javac命令将java文件编译为class文件:javac文件名.java (DOS文件名不区分大小写)使用java命令运行class文件:java类名(类名区分大小写)1.在一个JAVA文件中可以有多个类2.在个JAVA文件中只能有一个公有(public)的类3.公有的类的名字必须与文件名-样(包括大小写)4.JAVA代码区分大小写5.niain()是程序的入口6.通常情况下main()应该放在公有的类中7.每句代码后面用分号表示结束8.不允许在代码中直接书写中文的标点注释:1.单行注释:〃2.多行注释:/*注释内容*/3.文档注释第三章数据类型:有两种。
基本数据类型(简单数据类型),引用数据类型。
基本数据类型:有8种数字类型:整型,浮点型1.整型:表示十进制,八进制(0开头),十六进制(用Ox或0X头),在JAVA中没有无符号的数字a)byte:字节类型,1个字节-27—27-1b)short:短整型,2 个字节-215—215-10 int:整型,4个字节在JAVA中整数默认为讪,-231—231-1d) long:长整型,8个字节,-263—263.1,在数字后加1或L2.浮点型:a)Ooat:单精度,在数字后面加F或仁4个字节b)double:双精度,在JAVA中-个浮点型的数字默认为double类型。
JAVA学习完整版详细笔记
Java基础知识总结Java基础知识总结写代码:1,明确需求。
我要做什么?2,分析思路。
我要怎么做?1,2,3。
3,确定步骤。
每一个思路部分用到哪些语句,方法,和对象。
4,代码实现。
用具体的java语言代码把思路体现出来。
学习新技术的四点:1,该技术是什么?2,该技术有什么特点(使用注意):3,该技术怎么使用。
demo4,该技术什么时候用?test。
-----------------------------------------------------------------------------------------------一:java概述:1991 年Sun公司的James Gosling等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;1994年将Oak语言更名为Java;Java的三种技术架构:JAVAEE:Java Platform Enterprise Edition,开发企业环境下的应用程序,主要针对web程序开发;JAVASE:Java Platform Standard Edition,完成桌面应用程序的开发,是其它两者的基础;JAVAME:Java Platform Micro Edition,开发电子消费产品和嵌入式设备,如手机中的程序;1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre。
2,JRE:Java Runtime Environment,java程序的运行环境,java运行的所需的类库+JVM(java虚拟机)。
3,配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdkpath=%JAVA_HOME%\bin2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
JAVA笔记第一章-基础部分(李兴华网易云课堂)
1、j ava简介Java是现在最为流行的编程语言之一,也是拥有众多厂商支持的编程语言之一,同时Java已经成为了一个事实上的应用层开发的标准(基于业务的开发)。
其上所构建出来的框架也是最多的,发展的如此良好归结于一点:反射机制(所有框架的灵魂)。
Java语言的前身是在1991年开发出的OAK平台,最早是为一个GREEN的项目而设计的,此项目的核心意义在于利用email来控制家电产品运行,也就是最早所谓的物联网的概念。
当时SUN的工程师们原本打算使用C++进行开发,后来考虑到C++复杂性,于是以C++为基础开发出了一个OAK平台技术,所以Java是使用C++编写。
Java推出了Hot Java浏览器技术,并且获得了相当大的成功,所以Java最早的定位就是基于网络的。
后来Java经过了一些时间的沉淀,在1995年5月23日的时候正式推出了JDK 1.0,同时OAK被重新命名为Java,之后在1998年的时候,推出了JDK 1.2,同时将Java更名为Java 2,到了2005年十周年大会的时候,推出了JDK 1.5版本,或者称为Java SE 5.0,最新的版本是JDK 1.8,要想使用广泛,还需要至少3年。
Java是由最早的SUN(斯坦伏大学网络)开发的,SUN是一家从事于硬件生产的公司,而SUN最著名的代表作就是小型机,而最成功的应用是在amazon上进行的。
Amazon是一个在线商店,但是它自己也出版许多的技术图书。
现在amazon比较著名的服务就是云服务,像CIA也购买了amazon云服务,搭建的是一个私有云服务。
但是非常遗憾的是,SUN经历了世界的互联网低潮,低潮之后就一直没有重新站起来,在2009年的时候终于被Oracle收购了。
解释:关于Oracle收购SUN·企业平台架构:操作系统+ 数据库+ 中间件+ 编程语言;·微软的产品:Windows + SQL Server + IIS + .NET、Office;·Oracle的产品:UNIX + Oracle + OAS(收购BEA得到WebLogic)+ PL/SQL(收购SUN取得Java)、CRM、ERP;而Java技术的发展又有了几个分支:·J2SE(2005年之后更名为Java SE):提供了一些基础版本的支持;·J2EE(2005年之后更名为Java EE):提供了企业平台搭建,现在使用最广泛的架构;·J2ME(2005年之后更名为Java ME):提供了嵌入式开发的支持,但是却出生在了一个不好的时代,Nokia横行的时代,但是J2ME在哪个时候只能够作为游戏的出现。
(完整版)最全的java学习笔记(必看)
Java学习笔记目录一、Java技术基础 .........................................................................................................................1.1编程语言...............................................................................................................................1.2 Java的特点...........................................................................................................................1.3 Java开发环境.......................................................................................................................1.4 Java开发环境配置...............................................................................................................1.5 Linux命令与相关知识 ........................................................................................................1.6 Eclipse/Myeclipse程序结构 ................................................................................................二、Java语言基础 .........................................................................................................................2.1基础语言要素.......................................................................................................................2.2八种基本数据类型...............................................................................................................2.3常量和变量...........................................................................................................................2.4运算符与表达式...................................................................................................................2.5编程风格...............................................................................................................................2.6流程控制语句.......................................................................................................................2.7数组.......................................................................................................................................2.8字符串...................................................................................................................................2.9方法三要素...........................................................................................................................2.10插入排序.............................................................................................................................2.11冒泡排序.............................................................................................................................2.12冒泡排序:轻气泡上浮的方式.........................................................................................2.13二分法查找.........................................................................................................................2.14 Java系统API方法调用 ....................................................................................................2.15二进制基础.........................................................................................................................2.16 Java基础其他注意事项.....................................................................................................三、面向对象 .................................................................................................................................3.1类...........................................................................................................................................3.2对象.......................................................................................................................................3.3包...........................................................................................................................................3.4方法及其调用.......................................................................................................................3.5引用.......................................................................................................................................3.6访问控制(封装)...............................................................................................................3.7构造器...................................................................................................................................3.8 super()、super.和this()、this........................................................................................3.9重载和重写...........................................................................................................................3.10继承.....................................................................................................................................3.11 static ....................................................................................................................................3.12 final .....................................................................................................................................3.14抽象类.................................................................................................................................3.15接口.....................................................................................................................................3.16内部类.................................................................................................................................3.17匿名类.................................................................................................................................3.18二维数组和对象数组.........................................................................................................3.19其他注意事项.....................................................................................................................四、Java SE核心I .........................................................................................................................4.1 Object类...............................................................................................................................4.2 String类................................................................................................................................4.3 StringUtils类 ........................................................................................................................4.4 StringBuilder类....................................................................................................................4.5正则表达式...........................................................................................................................4.6 Date类..................................................................................................................................4.7 Calendar类 ...........................................................................................................................4.8 SimpleDateFormat类 ...........................................................................................................4.9 DateFormat类.......................................................................................................................4.10包装类.................................................................................................................................4.11 BigDecimal类 ....................................................................................................................4.12 BigInteger类.......................................................................................................................4.13 Collection集合框架 ...........................................................................................................4.14 List集合的实现类ArrayList和LinkedList ......................................................................4.15 Iterator迭代器....................................................................................................................4.16泛型.....................................................................................................................................4.17增强型for循环..................................................................................................................4.18 List高级-数据结构:Queue队列 ..................................................................................4.19 List高级-数据结构:Deque栈 ......................................................................................4.20 Set集合的实现类HashSet ................................................................................................4.21 Map集合的实现类HashMap ............................................................................................4.22单例模式和模版方法模式.................................................................................................五、Java SE核心II ........................................................................................................................5.1 Java异常处理机制...............................................................................................................5.2 File文件类 ...........................................................................................................................5.3 RandomAccessFile类...........................................................................................................5.4基本流:FIS和FOS ............................................................................................................5.5缓冲字节高级流:BIS和BOS ...........................................................................................5.6基本数据类型高级流:DIS和DOS ..................................................................................5.7字符高级流:ISR和OSW ..................................................................................................5.8缓冲字符高级流:BR和BW .............................................................................................5.9文件字符高级流:FR和FW ..............................................................................................5.10 PrintWriter ...........................................................................................................................5.11对象序列化.........................................................................................................................5.12 Thread线程类及多线程 ....................................................................................................5.13 Socket网络编程.................................................................................................................5.15双缓冲队列.........................................................................................................................Java技术基础1.1编程语言机器语言:0 1 在硬件直接执行汇编语言:助记符高级语言:(Java运行比C/C++慢)1)面向过程的高级语言:程序设计的基本单位为函数,如:C/C++语言。
2019年Java重点(学习笔记)(必看经典)
诚信、创新、开放、合作JAVA的面向对象编程--------课堂笔记面向对象主要针对面向过程。
面向过程的基本单元是函数。
什么是对象:EVERYTHING IS OBJECT(万物皆对象)所有的事物都有两个方面:有什么(属性):用来描述对象。
能够做什么(方法):告诉外界对象有那些功能。
后者以前者为基础。
大的对象的属性也可以是一个对象。
为什么要使用面向对象:首先,面向对象符合人类看待事物的一般规律。
对象的方法的实现细节是屏蔽的,只有对象方法的实现者了解细节。
方法的定义非常重要。
方法有参数,也可能有返回值。
注意区分:对象(本身)、对象的实现者、对象的调用者。
分析对象主要从方法开始。
我们通过类来看待对象,类是对象的抽象。
其次,采用面向对象方法可以使系统各部分各司其职、各尽所能。
对象之间的耦合性一定要低(比如不同硬盘和不同主板之间的关系)。
这样才能使每个对象本身做成最好的。
对于对象的要求:高内聚、低耦合,这样容易拼装成为一个系统。
实现高内聚就是要最大限度低提高复用性(复用性好是因为高内聚)。
可复用性是OOP的基础。
比较面向过程的思想和面向对象的思想:面向过程的思想:由过程、步骤、函数组成,以过程为核心;面向对象的思想:以对象为中心,先开发类,得到对象,通过对象之间相互通信实现功能。
面向过程是先有算法,后有数据结构。
面向对象是先有数据结构,然后再有算法。
在用面向对象思想开发的过程中,可以复用对象就进行复用,如无法进行复用则开发新的对象。
开发过程是用对个简单的对象的多个简单的方法,来实现复杂的功能。
从语法上来看,一个类是一个新的数据类型。
在面向对象编程中,除了简单数据类型,就是对象类型。
定义类的格式:class Student{代码}注意类名中单词的首字母大写。
实例变量:定义在类中但在任何方法之外。
(New出来的均有初值)局部变量:定义在方法之中的变量。
局部变量要先赋值,再进行运算,而实例变量均已经赋初值。
这是局部变量和实例变量的一大区别。
Java基础学习笔记资料
(一)Java编程基础1.Java语言的跨平台是通过针对不同的操作系统,提供不同的jvm来保证的。
2.JDK,JRE,JVM的作用及关系1)作用JVM:保证Java语言跨平台JRE:Java程序的运行环境JDK:Java程序的开发环境2)关系JDK:JRE+工具JRE:JVM+类库3.为了使程序能够独立运行,必须定义main方法main方法是程序的入口被jvm自动调用4.原码,反码,补码正数的原,反,补码都相同负数的反码为原码符号位不变,按位取反负数的补码为原码符号位不变,按位取反,末位加一5.关键字1)被Java语言赋予特定含义的单词2)特点:全部小写。
3)注意事项:A:goto和const作为保留字存在。
B:类似于Notepad++这样的高级记事本会对关键字有特殊颜色标记6.标识符1)就是给类,接口,方法,变量等起名字的字符序列2)组成规则:A:英文大小写字母B:数字C:$和_3)注意事项:A:不能以数字开头B:不能是java中的关键字C:Java语言严格区分大小写7.常见的命名规则(见名知意):username,password等A:包名全部小写单级包:小写举例:cn,com多级包:小写,并用.隔开举例:com.baidu,com.renrenB:类名或者接口一个单词:首字母大写举例:Student,Demo多个单词:每个单词首字母大写举例:HelloWorld,StudentNameC:方法或者变量一个单词:首字母小写举例:name,main多个单词:从第二个单词开始,每个单词首字母大写举例:studentAge,showAllNames()D:常量全部大写一个单词:大写举例:PI多个单词:大写,并用_隔开举例:STUDENT_MAX_AGE8.注释1)就是对程序进行解释说明的文字2)分类:A:单行注释// 注释内容B:多行注释/* 注释内容 */C:文档注释/** 注释内容 */D:单行注释可以嵌套使用,但是多行注释不可以嵌套使用9.常量1)在程序执行的过程中,其值不发生改变的量2)分类:A:字面值常量B:自定义常量3)字面值常量A:字符串常量 "hello"B:整数常量12,23C:小数常量12.345D:字符常量'a','A','0'E:布尔常量true,falseF:空常量null4)在Java中针对整数常量提供了四种表现形式A:二进制由0,1组成。
java笔记
Java学习笔记(讲师:韩顺平)整理:reamd1、先建一个工程——>包——>类2、java中类名首字母大写方法名的首字母是小写的①匈牙利法:myCode②下划线法:my_code3.先设计类 然后根据类创建对象实例化一个开辟一个内存设计类的过程class 类名{};设计类的属性时,尽量带着private的控制访问符号,如需要访问类私有的属性,可通过构造一个公共的方法去给予外界一定的访问权。
(1)构造方法,在建立一个新的对象时会自动调用构造方法初始化成员属性。
(注:若类的形式为:class Clerk{int age;};则构造函数的形式为public Clerk(int age){ this.age=age;};)(2)类方法:public static int total() {方法语句;}4. this指向一个对象,而不是类this只能在类定义中用5.(1)static int a;a称为静态变量或类变量,因此其可以被任何一个变量访问;因此它不是任何一个实例所共有的6.java面向对象语言的三大特征:封装、继承、多态。
(可附加:抽象)(1)封装:访问控制符Public 对外公开Protected 对子类和同一个包公开默认向同一个包公开private 只有类本身才可以访问(2)能够继承的访问控制为:Public protected 默认(3)方法的重载方法的名称相同、方法的参数不同。
方法的覆盖:方法的名称相同就把父类覆盖了。
不能把父类方法的访问权限缩小。
(4)多态大类下创建实例,能够自动识别。
7.抽象类,接口,final(1)抽象类:用abstract关键字来修饰一个类,抽象方法不能有主体。
(2)接口:interface 接口名class 类名implements 接口名Implement实现原则:当一个接口实现了,就要求实现接口中的所有方法。
原则:接口不能被实例化;接口中的所有方法不能有主体,(3)final 修饰不希望被他人修改的父类的属性和方法。
Java从入门到精通读书笔记—c++程序员学java
Java从入门到精通读书笔记—c++程序员学java第一章:2分钟看完,老生常谈,即使没怎么用过java也知道这些。
第二章:1.instanceof应该是c++中没有的,c++使用RTTI解决这个问题的,很难用。
2.super这种引用父类的方法也是比较简单的,C++中是用父类名::父类方法()解决的,有点难看。
3.自动类型转换和C++一样,精度变高的随便转,精度变低的会丢失。
4.强制类型转换只有(type)这一种,不像c++有static_cast、dynamic_cast、reinterpret_cast、和const_cast。
5.运算符什么的和c++几乎一模一样。
半小时看完。
第三章:1.break可以跳出语句块,c++中没有语句块。
语句块的定义就是在一段语句前加上花括号和冒号;其他基本上和c++一样,5分钟看完。
第四章:1.java数组越界会在运行时抛异常,c++不会,声明数组的方法也有些不一致。
java 声明数组的所有办法int[] a = new int[4];int a[] = new int[4];int[] a = {1, 15, 26};int a[] = {1, 15, 26};2.java的数组是一个对象,自带length属性,使用简单。
c++的数组不自带方法和属性,要知道数组长度只能sizeof(arrayObject)/sizeof(int)。
当然如果使用STL中的vector之类的也和java一样简单。
3.java的所谓数组赋值(或者叫数组拷贝)其实就是c++中的两个数组指针的赋值,java没有指针,所以作者费了一大堆口水。
好在java有垃圾回收,要不然一个指针的内存就算泄露了。
至于真正的数组内容赋值,是使用System.arraycopy(ir, srcPos, ir, destPos, length);而C++一般使用memcpy等函数。
若使用STL中的vector,那么就看vector的拷贝构造函数怎么写的,应该是vector的对象赋值过去而不是指针指过去。
java教程之自学笔记
JAVA课程之学习笔记(持续动态更新)关键字:使用标识符时,需要遵守几条规则:1. 标识符可以由字母、数字、下划线(_)、美元符($)组成,但不能包含@、%、空格等其它特殊字符,不能以数字开头。
譬如:123name 就是不合法滴2. 标识符不能是Java 关键字和保留字(Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。
如:不可以使用 void 作为标识符,但是 Myvoid 可以3. 标识符是严格区分大小写的。
所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!4. 标识符的命名最好能反映出其作用,做到见名知意。
Java中的数据类型Java 语言是一种强类型语言。
通俗点说就是,在Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。
Java 中有两类数据类型:在Java 的领域里,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。
说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应。
常用的基本数据类型有:你可能已经注意到了:String 是一种常见的引用数据类型,用来表示字符串。
在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、密码、电子邮箱等。
Java中变量的使用规则不得不接受的变量小脾气:1、Java 中的变量需要先声明后使用2、变量使用时,可以声明变量的同时进行初始化,也可以先声明后赋值3、变量中每次只能赋一个值,但可以修改多次4、main 方法中定义的变量必须先赋值,然后才能输出5、虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等等Java条件语句之switch当需要对选项进行等值判断时,使用switch 语句更加简洁明了。
例如:根据考试的名次,给予前4 名不同的奖品。
Java学习笔记精彩版
Day01 Day02Java到底有哪些优势?1.跨平台(平台=OS)可移植性在不同的操作系统之上可以不用做任何代码的修改直接使用a)字节码文件:字节码文件不包括任何内存布局信息与操作系统和硬件毫无关系(Java的内存分布是在运行的时候才动态分配的)b)JVM:真正解释字节码文件内容并且和操作系统交互的部分Sun(Oracle)已经给每一款操作系统都写好了现成的JVMJVM组成部分:类加载器ClassLoader字节码校验器解释执行器(翻译)逐行的解释执行代码2.安全健壮3.面向对象面向过程:程序:函数+变量(算法+数据结构)面向对象:如:SmallTalk程序:对象和对象相互之间的“通讯”对象:属性和方法类:创建对象的模板具有相同特征的一类事物的高度抽象集合概念对象是类的实例化,类是对象的抽象化。
引用4.动态更新5.简单!没有指针和相关的内存操作new 内存操作gc 内存回收清理Java中的回收机制:零引用回收问题:System.gc();Runtime.getRuntime().gc();调用gc的下一行是否回收?不一定6.免费开源搭建Java开发平台1.JDK (JavaSDK java开发工具包) SDK(软件开发工具包)JDK安装JDK 1.5 5.0 猛虎JDK 1.6 6.0 野马JDK 1.7 7.0 海豚JDK JRE JVMJDK Java开发工具包JRE Java运行环境JVM Java虚拟机JDK = JRE + 常用工具JRE = JVM + 核心类库JVM = 三部分2.设置环境变量我的电脑-属性-高级-环境变量为了使开发过程变得更加简单快捷(问题:搭载Java开发平台最少设置几个环境变量?零个。
为了方便,不是必要。
)a)PATH 就是为了在任何一个目录下都可以直接访问bin目录下的工具(命令)C:\Program Files\Java\jdk1.6.0_06\binb)CLASSPATH 默认值: . (当前目录)c)JAVA_HOME 设置到JDK安装目录下JAVA_HOME:JDK安装目录下CLASSPATH:.PATH:%JAVA_HOME%\bin*环境变量名字最好全部大写*在CMD设置环境变量时=左右两边不要加空格*在CMD中定义任意程序环境变量:如:set PATH=E:\TTPlayer同时定义两个环境变量中间加分号,或者Set PATH=%PATH%;E:\TTPlayer分号后面不能加空格3.Java运行过程:编译期:Java源文件.java编译为字节码文件.class运行期:JVM --OS硬件编写代码HelloWorld如何编译java程序javac 源文件的名字.java如何运行java程序java 类名(没有扩展名)public 修饰符modifierstatic 修饰符静态(不用通过对象调用)void 方法返回值(表示这个方法不需要返回值)main 标识符标识符Identifier1.必须是英文_ $ 中文开头2.不能使用有特殊意义的名字(关键字)类名(接口名):每个单词首字母大写属性名和方法名:首字母小写,之后每个单词首字母大写包名:全部小写The most common relationships between classes are • Dependenc e (“uses–a”)• Aggregation (“has–a”)• Inheritance (“is–a”)类成员:类可以拥有三种成员:·字段:它们是类及其对象相关联的数据变量,保存着类或者对象的状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Day01 Day02Java到底有哪些优势?1.跨平台(平台=OS)可移植性在不同的操作系统之上可以不用做任何代码的修改直接使用a)字节码文件:字节码文件不包括任何内存布局信息与操作系统和硬件毫无关系(Java的内存分布是在运行的时候才动态分配的)b)JVM:真正解释字节码文件内容并且和操作系统交互的部分Sun(Oracle)已经给每一款操作系统都写好了现成的JVMJVM组成部分:类加载器ClassLoader字节码校验器解释执行器(翻译)逐行的解释执行代码2.安全健壮3.面向对象面向过程:程序:函数+变量(算法+数据结构)面向对象:如:SmallTalk程序:对象和对象相互之间的“通讯”对象:属性和方法类:创建对象的模板具有相同特征的一类事物的高度抽象集合概念对象是类的实例化,类是对象的抽象化。
引用4.动态更新5.简单!没有指针和相关的内存操作new 内存操作gc 内存回收清理Java中的回收机制:零引用回收问题:();().gc();调用gc的下一行是否回收?不一定6.免费开源搭建Java开发平台(JavaSDK java开发工具包) SDK(软件开发工具包)JDK安装JDK 猛虎JDK 野马JDK 海豚JDK JRE JVMJDK Java开发工具包JRE Java运行环境JVM Java虚拟机JDK = JRE + 常用工具JRE = JVM + 核心类库JVM = 三部分2.设置环境变量我的电脑-属性-高级-环境变量为了使开发过程变得更加简单快捷(问题:搭载Java开发平台最少设置几个环境变量?零个。
为了方便,不是必要。
)a)PATH 就是为了在任何一个目录下都可以直接访问bin目录下的工具(命令)C:\Program Files\Java\jdk1.6.0_06\binb)CLASSPATH 默认值: . (当前目录)c)JAVA_HOME 设置到JDK安装目录下JAVA_HOME:JDK安装目录下CLASSPATH:.PATH:%JAVA_HOME%\bin*环境变量名字最好全部大写*在CMD设置环境变量时=左右两边不要加空格*在CMD中定义任意程序环境变量:如:set PATH=E:\TTPlayer同时定义两个环境变量中间加分号,或者Set PATH=%PATH%;E:\TTPlayer分号后面不能加空格运行过程:编译期:Java源文件.java编译为字节码文件.class运行期:JVM --OS硬件编写代码HelloWorld如何编译java程序javac 源文件的名字.java如何运行java程序java 类名(没有扩展名)代码:public 修饰符modifierstatic 修饰符静态(不用通过对象调用)void 方法返回值(表示这个方法不需要返回值)main 标识符标识符Identifier1.必须是英文_ $ 中文开头2.不能使用有特殊意义的名字(关键字)类名(接口名):每个单词首字母大写属性名和方法名:首字母小写,之后每个单词首字母大写包名:全部小写The most common relationships between classes are • Dependence (“uses–a”)• Aggregation (“has–a”)• Inheritance (“is–a”)类成员:类可以拥有三种成员:·字段:它们是类及其对象相关联的数据变量,保存着类或者对象的状态。
·方法:它们包含类的可执行代码并定义了对象的行为·嵌套类(nested class)与嵌套接口(nested interface):它们是在其他的类或接口声明的内部声明的类与接口。
类修饰符:·注解(annotation)·public:任何人都可以声明对这种类的对象的引用,或者访问这种类的公共成员。
·abstract:抽象类,被认为是不完整的,所以我们不能创建抽象类的实例。
通常这是因为抽象类包含abstract方法,这些方法必须在子类中实现。
·final:final类不允许拥有子类。
类不能既是final 的又是abstract的。
·严格浮点(strict floating point):声明为strictfp的类要求类中的所有浮点运算都是精确运算Java当中的包(对应操作系统当中的目录)1.区分不同的命名空间2.对多个.class文件进行分类的归类编译语句:javac -d .-d 自动创建源文件当中指定的包结构.在当前目录下创建目录结构运行语句: java 包名.类名通过包名和类名来唯一确认一个类打包语句:package导包语句:import例:打包,源文件放在桌面,为了能够运行,定义主编译:打开CMD,输入“cd 桌面”转到当前目录,编译语句:javac –d .运行:java (通过包名+类名唯一确定一个类)例:导包,先写一个打包文件:编译:javac –d .编译:javac运行:java Hello生成帮助文档的常用工具javadoc 语句:javadoc -d doc 源文件的名字.javaJava注释:单行注释/多行注释/* */文档注释/** */生成jar包jar包就是java当中可执行的压缩归档文件1.可执行2.压缩3.归档一个java程序可能涉及到很多个.class 把它们都归纳在一起变成一个文件生成jar包语句:jar cvf 名字.jar 要放进压缩文件里的文件c 创建新的归档文件v 标准输出设备显示详细列表信息f 指定归档文件的名字生成可执行Jar包具体步骤:1 写.java文件2 编译.java生成.classjavac3 将class文件打到jar包当中jar cvf4 修改jar当中的清单文件,在第三行加入Main-Class: Test注意:Test前面有空格(终止程序的方法:在CMD中输入tskill javaw)变量编程语言当中肯定要定义很多很多的变量来存储数据变量分类:1.定义在类体当中的变量义在方法体中的变量局部变量在自己所在的方法体当中可以使用出方法体消亡局部变量使用之前一定要初始化*局部变量和成员变量是可以重名的!在局部变量数据类型1.基本数据类型primitive types8种booleancharbyteshortintlongfloatdoubleFloating-point numbers without an F suffix (such as are always considered to be of type double.If you want to round a floating-point number to the nearest integer (which is the more useful operation in most cases), use the method:double x = ;int nx = (int) (x);Now the variable nx has the value 10.布尔型true / false字符型3.整数型(符号位数值位)byte 8位-128 ~ 127short 16 - 215 ~ 215 -1int 32 *long 64 即-2 (n-1) ~ 2(n-1)-14.浮点型(符号位幂指位数值位)float 32位double 64位*2.引用数据类型(自定义类型对象类型)byte short (char) int long float double自动提升(就近提升)强制类型转换这种类型提升的规则,对于方法参数匹配同样适用public class Test{public static void main(String[] args){boolean flag = true;char c1 = '中';char c2 = 97;char c3 = '\u0000';char c4 = '\t';byte b1 = 1;byte b2 = 2;byte b3 = (byte)(b1+b2);1L0.1F公历闰年的简单计算方法:(符合以下条件之一的年份即为闰年)1.能被4整除而不能被100整除。
(如2004年就是闰年,1900年不是)2.能被400整除。
(如2000年是闰年)题目:判断年份是不是闰年,有三次输入机会*/importWhenever you use a class that is not defined in the basic package, you need to use an import directive. 注意:Comparable属于Comparator属于(使用前import)public class TestNine{public static void main(String[] args){outer:for(int i=1;i<=9;i++){inner:for(int j=1;j<=9;j++){"×"+i+"="+(i*j)+"\t");if(j==i){continue outer;;public class TestMay162{public static void main(String[] args){数组2.源数组开始复制的下标3.目标数组4.目标数组第几个开始放新的值5.一共放多少个*/}}public class TestObjectArray{public static void main(String[] args){已经知道:有一对熊猫团团圆圆,三个月之后生下一对小熊猫之后每个月生下一对熊猫,小熊猫满三个月之后,每个月生一对儿小熊猫问:第23个月熊猫总共多少只?分析:每个月小熊猫的对数关系为1 1 2 3 5 8 13 21 ... public class Panda{public static void main(String[] args){int[] iset=new int[23];iset[0]=1;iset[1]=1;for(int i=2;i<;i++){iset[i]=iset[i-2]+iset[i-1];}}亮) 现在有一百个人排成一队 第一个人拉所有能把1整除的房间里的灯 第二个人拉所有能把2整除的房间里的灯 。
第100个人拉所有能把100整除的房间里的灯 问:最后哪些灯是亮的(考虑实现效率!) public class TestLight{ public static void main(String[] args){ Light[] room=new Light[100]; for(int i=0;i<100;i++){ room[i]=new Light(); } for(int human=1;human<=100;human++){ for(intnumber=1;number<=100;number++){ if(number%human==0) room[number-1].pull(); } } for(int i=0;i<100;i++){ if(room[i].isOn) "第"+(i+1)+"个房间的灯是亮的"); } } }class Light{ boolean isOn;验证哥德巴赫猜想:任何一个大于6的偶数能够拆分成两个质数相加的和 while(number<=6||number%2!=0){"你输入的数据不合法,请重新输入:");number=();}for(int i=2;i<=number/2;i++){ if(check(i)&&check(number-i)){ "你输入的数字是两个质数"+i+"和"+(number-i)+"的和"); } } } public static boolean check(int num){ for(int i=2;i<=num/2;i++){ if(num%i==0){ return false; } } return true; } }4. 验证数学黑洞问题:任意一个4位数,只要不是4位都相同的,那么取它最大排列组合减去最小排列组合,得到的数再取最大排列组合减去最小排列组合,依次类推,不超过7次则肯定会得到数字6174 import .*;public class TestBlackHole{ public static void main(String[] args){ Scanner sc=new Scanner; "为了验证数学黑洞,请输入一个四位数字,且四位不相同:"); String number=(); while(!("6174")){ int max=getMax(number); "的最大排列组合是:"+max); int min=getMin(number); "最小排列组合是:"+min); number=max-min+""; "二者想减得到的新数字为:"+number); } } public static int getMax(String str){ char[] nums=(); (nums); StringBuilder builder=new StringBuilder(newString(nums));();int ok=());return ok;}public static int getMin(String str){char[] nums=();(nums);String s=new String(nums);int ok=(s);return ok;}}关于二维数组:Java当中的二维数组其实就是数组(引用类型)的数组,下面一段代码定义了一个存放不同个数元素的数组的数组int[][] iset = new int[7][];iset[0] = new int[3];iset [1] = new int[3];iset [2] = new int[4];iset [3] = new int[3];iset [4] = new int[3];iset [5] = new int[2];iset [6] = new int[2];图示:Day05面向对象三大基本特征封装(encapsulation)继承(inheritance)多态(polymorphism)public class TestEncap{public static void main(String[] args){Human hm = new Human();(30);}}class Human{private int age;private String name;public int getAge(){return age;}public void setAge(int age){型不同2.个数不同3.顺序不同)下面这段代码编译时出错,要清楚如何编译、多态、方法重载、方法覆盖!*/public class TestOverload{public static void main(String[] args){A bb = new B();(10);态多态(父类类型子类对象)2.静态多态编译时多态(Java当中的方法重载Overload )public class TestSuper{public static void main(String[] args){B baby = new B();();}}class A{int i = 100;public void display(){"A类的display方法");}}class B extends A{int i = 1000;public void display(){打印当前对象的i属性谁调用display谁就是当前对象打印当前对象的父类对象的i属性();}}图示:构造器(constructor)/*构造器:在构造对象的时候需要调用.构造器没有返回类型名字要和类名完全一样Java当中每个类都有构造器构造器通常用来初始化实例变量(属性)构造器可以重载,但不能被继承,更不能被覆盖!构造器的第一句肯定是super();或this(); 无参的构造器默认第一句super();*/public class TestConstructor{public static void main(String[] args){JavaTeacher jt = new JavaTeacher();}}class Teacher{int age;String name;public Teacher(){"Teacher的无参构造方法被调用了");}public Teacher(int age,String name){"Teacher的有参构造方法被调用了"); 占用的内存如何被释放,而Java当中内存的分配和回收完全是交于GC来自动管理,Java当中的Object类有finalize().但是finalize()和析构函数不是同样的概念,这个方法只是gc回收之前被调用的一个普通方法.public class TestObject{public static void main(String[] args){while(true){Teacher tea = new Teacher(23,"ABC");性名访问修饰方法:这个方法不用通过对象就可以访问,通过类名.方法名()就可以直接调用但是静态方法当中不能直接访问非静态的属性,不能直接调用非静态的方法修饰代码块:静态初始化块(初始化静态属性的)public class TestStatic1{public static void main(String[] args){People peo=new People();People peo1=new People();=20;="Earth";非静态i是对象的一部分,对象peo对应的i不随peo1的i改变静态属性home唯一,新对象peo1进行了重新赋值,home的值改变,即People类下所有新new对象home值都改变不依靠对象存在可以直接通过类名.属性名访问}}class People{static String home = "地球";int i=19;}运行结果:19EarthEarthpublic class TestStatic2{public static void main(String[] args){(); 法名() 可以直接调用 性 名访问Human h1=new Human("you"); ();}}class Human{ static String home="earth"; String name; public Human(String name){ =name; } public static void destroy(){ home="devil"; } public void protect(){ home="heaven"; } }总结一下对象的创建过程,假设有个名为Dog 的类: 1. 当首次创建类型为Dog 的对象时(构造器可以看成静态方法),或者Dog 类的静态方法/静态字段首次被访问时,Java 解释器必须查找类路径,以定位文件.2. 然后载入(创建一个Class 对象),有关静态初始化的所有动作都会执行.因此,静态初始化只在Class 对象首次加载的时候进行一次.3. 当用new Dog()创建对象的时候,首先将在堆上为Dog 对象分配足够的存储空间.4. 这块存储空间会被清零,这就自动地将Dog 对象中的所有基本数据类型都设置成了缺省值,而引用则被设置成了null.5. 执行所有出现于字段定义处的初始化动作.6. 执行构造器.以看到有四种容器:Map、List、Set和Queue。