- 博客(43)
- 收藏
- 关注
原创 面向对象-HashSet
|--Set:元素是无序(存入和取出的顺序不一定一致),元素不可以重复。 |--HashSet:底层数据结构是哈希表。 HashSet是如何保证元素唯一性的呢? 通过元素的两个方法,HashCode和equals来完成。 如果元素的hashCode值相同,才会判断equals是否为true。 如果元素的hashCode值不同,才会调用equal...
2018-03-16 20:32:28
251
原创 面向对象-ArrayList练习
元素很多,涉及到频繁的增删操作,使用LinkedList;涉及到增删,还有查询,使用ArrayList。1、去除重复元素:代码:import java.util.*;public class code{ public static void main(String[] args) { ArrayList al = new ArrayList(); al.add("1");...
2018-03-16 16:21:17
355
原创 面向对象-LinkedList
LinkedList特有方法://增加addFirst();addLast();//获取元素,但不删除元素,如果集合中没有元素,会出现NoSuchElementExceptiongetFirst();getLast();//获取元素,但是元素被删除,如果集合中没有元素,会出现NoSuchElementExceptionremoveFirst();removeLasr();JDK 1.6出现了替代方...
2018-03-16 15:27:15
257
原创 面向对象-List集合(共性方法、List和Set子接口、具体对象的特点)
Collection: |--List:元素是有序的,元素可以重复。因为该集合体系有索引。 |--ArrayList:底层的数据结构使用的是数组结构,特点:查询速度很快,但是增删稍慢。线程不同步。 |--LinkedList:底层的数据结构使用的是链表结构,特点:增删很快,查询稍慢。 |--Vector:底层的数据结构使用的是数组结构,线程同步,被A...
2018-03-16 10:30:56
333
原创 面向对象-迭代器
什么是迭代器呢?就是集合取出元素的方式。把取出方式定义在集合的内部,这样取出就可以直接访问集合内容的元素。那么去除方式就被定义成了内部类。而每一个容器的数据结构不同,所以取出的动作细节也不一样。但是都有共性内容判断和取出,可写出共性抽取。那么这些内部类都符合一个规则。该规则是Iterator,如何获取集合的去除对象呢?通过一个对外提供的方法,iterator();代码:import java.ut...
2018-03-16 10:02:05
310
原创 面向对象-集合框架(共性方法)
1.add方法的参数类型是Object,以便于接受任意类型对象。2.集合中存储的都是对象的引用(地址)。代码:import java.util.*;public class code{ public static void main(String[] args) { //创建一个集合容器,使用Collection接口的子类:ArrayList ArrayList a = new A...
2018-03-15 21:31:57
223
原创 面向对象-集合框架(体系概述)
集合框架:为什么会出现这么多的容器呢?因为每一个容器对数据的存储方式都有不同,这个存储方式称之为:数据结构。为什么出现集合类?面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象操作,就对对象进行存储,集合就是存储对象最常用的一种方式。数组和集合类同是容器,有什么不同?数组虽然也可以寸处对象,但长度是固定的,集合长度是可变的,数组中可以存储基本数据类型,集合只能存储对象。集合类的特点:...
2018-03-15 20:51:41
206
原创 面向对象-基本数据类型对象包装类与新特性
基本数据类型转成字符串: 基本数据类型+"" 基本数据类型.toString(基本数据类型值) 如:Integer.toString(34);//将34整数变成"34";字符串转成基本数据类型: xxx a = Xxx.parseXxx(String); int a = Integer.parseInt("123");//静态调用方式 double b = Do...
2018-03-15 20:30:08
175
原创 面向对象-StringBuffer
StringBuffer是字符串缓冲区,是一个容器。特点:1、长度是可以变化的。2、可以操作多个数据类型。3、最终会通过toString方法变成字符串。C->create U->update R->read D->delete1、存储 StringBuffer append():将指定数据作为参数添加到已有数据结尾处。 StringBuffer insert(i...
2018-03-15 15:59:33
149
原创 面向对象-字符串练习
1、去除字符串两端的空格代码:public class code{ public static String method_get(String str) { int start=0,end=str.length()-1; while(start<=end && str.charAt(start)==' ') start++; while(start&l...
2018-03-15 13:13:24
192
1
原创 面向对象-String类
1、字符串是一个特殊的对象。2、字符串一旦初始化就不可以被改变。String类就代表一个字符串,不可以被复写,因为它没有子类。代码:public class code{ public static void main(String[] args) { String s1 = "abc";//s1是一个类型变量,“abc”是一个对象。 //字符串最大的特点:一旦被初始化...
2018-03-14 20:20:55
200
原创 活着就是为了改变世界
大学四年,毕业将至,感触颇多,很幸运自己找到自己终极一生要去做的事情! 仰望星空,不要低头看脚下,无论生活如何艰难,请保持一颗好奇心,你总会找到自己的路和属于你的成功! ...
2018-03-14 19:27:40
265
1
原创 面向对象-多线程实现的形式
实现方法:class Demo implements Runnable{ public void run() { for (int i = 0; i < 100; i++) { System.out.println("Demo4->"+i); } }}public class code{ public static void main(String[...
2018-03-12 17:25:30
331
原创 面向对象-多线程(同步函数的锁是this与静态同步函数的锁是class)
同步函数使用的是哪一个锁呢?函数需要被对象调用,那么函数都有一个所属对象引用,就是this。。所以同步函数使用的锁是this。代码:class Demo implements Runnable{ private int t=200; Object obj = new Object(); boolean flag = true; public void run () { if(flag...
2018-03-12 11:04:49
801
原创 Java开发相关书籍(PDF)-下载
Spring实战(第4版)链接: https://pan.baidu.com/s/1KZzXX_sk-hNBn8V6p6wIHg 密码: 7phw
2018-03-12 10:19:13
1334
原创 面向对象-多线程的安全问题
多线程的运行出现了安全问题:问题的原因:当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行,导致共享数据的错误。解决办法:对多条操作共享数据的语句,只能让一个线程都执行完,在执行过程中,其他线程不可以参与执行。Java对于多线程的安全问题提供了专业的解决方式。同步代码块:synchronize(对象){ 需要被同步的代码}对象如同锁,...
2018-03-12 08:58:19
339
原创 面向对象-多线程、继承Thread类和实现Runnable接口
进程:是一个正在执行中的程序。每一个进程执行都有一个执行顺序,该顺序是一个执行路径,或者叫一个控制单元。线程:就是进程中的一个独立的控制单元。吸纳城在控制着进程的执行。一个进程中至少有一个线程。Java VM 启动的时候会有一个进程java.exe进程中至少有一个线程负责java程序的执行,而且这个线程运行的代码存在于main方法中。该线程称之为主线程。扩展:其实更细节说明jvm,jvm启动不止一...
2018-03-11 16:56:28
487
原创 Java 1.8 API 帮助文档-中文版
百度云链接: https://pan.baidu.com/s/1mE_O6biq80Z_bCO-ROOWug 密码: m41r
2018-03-11 14:58:03
138131
211
原创 面向对象-包(package)
包(package)1、对类文件进行分类管理2、给类提供多层命名空间3、卸载程序文件的第一行4、类名的全称是:包名.类名5、包也是一种封装形式总结:1、包与包之间进行访问,被访问包中的类以及类中的成员,需要public修饰。2、不同包中的子类还可以直接访问父类中被protected权限修饰的成员。包与包之间可以使用的权限只有两种:pulbic protected权限publicprotec...
2018-03-11 09:59:05
577
原创 面向对象-总结
this:代表本类对象,哪个对象调用this所在函数,this就代表哪个对象。final:1、修饰类、变量(成员变量、静态变量、局部变量),函数。2、修饰的类不可以被继承。3、修饰的函数不可以被覆盖。4、修饰的变量时一个常量,只能赋值一次。...
2018-03-11 00:55:30
134
原创 面向对象-异常(覆盖时的异常特点)
异常在子父类覆盖中的体现:1、子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者改异常的子类。2、如果父类方法抛出多个异常,那么子类在覆盖改方法时,只能抛出父类异常的子集。3、如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常。 如果子类方法发生了异常,就必须要进行try处理,绝对不能抛。...
2018-03-10 23:29:48
152
原创 面向对象-异常:RuntimeException
Exceptoin 中有一个特殊的子类异常 RuntimeException如果在函数内容抛出该异常,函数上可以不用声明,编译一样通过。如果在函数上声明了该异常,调用者可以不用进行处理,编译一样通过。自定义异常时:如果该异常的发生无法在继续进行运算,就让自定义异常继承RuntimeException。对于异常分两种:1、编译时被检测的异常。2、编译时不被检测的异常(运行时异常:RuntimeEx...
2018-03-10 18:15:29
271
原创 面向对象-自定义异常、throw和throws的区别
自定义异常:因为项目中会出现特有的问题,而这些问题并未被java所描述并封装对象。所以对于这些特有的问题可以按照java对问题封装的思想。将特有的问题,进行自定义的异常封装。当函数内部出现了throw抛出异常对象,必须要给出对应的处理动作。要么在内部try catch处理。要么在函数上声明让调用者处理。一般情况在函数内出现异常,函数上需要声明。如何获取定义异常信息呢?因为父类中已经把异常信息的操作...
2018-03-10 17:52:44
329
原创 面向对象-自定义异常
自定义异常:因为项目中会出现特有的问题,而这些问题并未被java所描述并封装对象。所以对于这些特有的问题可以按照java对问题封装的思想。将特有的问题,进行自定义的异常封装。当函数内部出现了throw抛出异常对象,必须要给出对应的处理动作。要么在内部try catch处理。要么在函数上声明让调用者处理。一般情况在函数内出现异常,函数上需要声明。代码:class Fushuexception ext...
2018-03-10 17:29:11
152
原创 面向对象-异常概述、try catch方法、异常声明throws、多异常处理
异常:就是程序在运行时出现不正常情况。1、异常由来:问题也是现实生活中一个具体的事物,也可以通过java类的形式进行描述,并封装成对象。其实就是java对不正常情况进行描述后的对象体现。对于问题的划分:一种是严重的问题,一种是非严重的问题。对于严重的问题:java通过Error类进行描述,对于Error一般不编写针对性的代码对其进行处理。对于非严重的问题:java通过Exception类进行描述,...
2018-03-10 15:35:34
178
原创 面向对象-匿名内部类
匿名内部类:1、匿名内部类其实就是内部类的简写格式。2、定义匿名内部类的前提:内部类必须是继承一个类或者实现接口。3、匿名内部类的格式:new 父类或者接口(){定义子类的内容}4、其实匿名内部类就是一个匿名子类对象,这个对象有点胖,可以理解为带内容的对象。5、匿名内部类中定义的方法最好不要超过3个。代码:abstract class Demo{ abstract void show();}...
2018-03-10 12:00:48
138
原创 面向对象-内部类访问规则与静态内部类
内部类的访问规则:1、内部类可以直接访问外部类中的成员,包括私有。 之所以可以直接访问外部类中的成员,是因为内部类中持有一个外部类的引用,格式:外部类名.this2、外部类要访问内部类,必须建立内部类对象内部类的定义原则:当描述事物时,事物的内部还有事物,该事物用内部类来描述。内部事物可以使用外部事物的内容。class Body{ private class Xinzang { }...
2018-03-10 09:42:45
178
原创 面向对象-Object类(equals())
Object:是所有对象的直接后者间接父类,传说中的上帝。该类中定义的肯定是所有对象都具备的功能。Object类中已经提供了对对象是否相同的比较方法。如果自定义类中也有比较相同的功能,没有必要重新定义。只要沿袭父类中的功能,建立自己特有比较内容即可,这就是覆盖。代码:class Demo //extends Object{ private int num; Demo(int num){ ...
2018-03-09 18:40:22
159
原创 面向对象-多态、多态中成员的特点
多态:可以理解为事物存在的多钟体现形态。1.多态的体现 父类的引用指向了自己的子类对象。 父类的引用也可以接收自己的子类对象。2.多态的前提 必须使类与类之间有关系,要么继承,要么实现。 通常还有一个前提:存在覆盖。3.多态的好处 多态的出现大大的提高程序的扩展性。 多态的弊端 提高了扩展性,但是只能使用父类的引用,访问父类中的成员。4.多态的应用5.多态的...
2018-03-09 14:19:54
165
原创 面向对象-接口
接口:初期理解,可以认为是一个特殊的抽象类,当抽象类中的方法都是抽象的,那么该类可以通过接口的形式来表示。class用于定义类interface用于定义接口接口定义时,格式特点:1.接口中常见定义:常量、抽象方法。2.接口中的成员都有固定修饰符。常量:public static final方法:public abstract重点:接口中的成员都是public的。接口:是不可以创建对象的,因为有抽象...
2018-03-09 08:44:19
249
原创 面向对象-模板方法模式
需求:获取一段程序运行的时间。原理:获取程序开始和结束时间并相减即可。获取时间:System.currentTimeMillis();当代码完成优化后,就可以解决这类问题。这种方式:模板方法设计模式。什么是模板方法?在定义功能时,功能的一部分是确定的,但是有一部分是不确定,而确定的部分在使用不确定的部分,那么这时就将不确定的部分暴露出去,由该类的子类去完成。代码:abstract class Ge...
2018-03-08 21:39:15
498
原创 面向对象-抽象类
抽象:里边有未明确的东西。抽象类的特点:1、抽象方法一定在抽象类中。2、抽象方法和抽象类都必须被abstract关键字修饰。3、抽象类不可以用new创建对象,因为调用抽象方法没意义。4、抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用。如果子类只覆盖部分抽象方法,那么该子类还是一个抽象类。抽象类和一般类没有太大的不同。如何描述事物,就如何描述事物,只不过,该事物出现了...
2018-03-08 19:56:30
462
原创 面向对象-final关键字
final:最终,作为一个修饰符。1、可以修饰类,函数,变量。2、被final修饰的类不可以被继承,为了避免被继承,被子类复写功能。3、被final修饰的方法不可以被复写。4、被final修饰的变量时一个敞亮只能赋值一次,既可以修饰成员变量,也可以修饰局部变量。当在描述事物时,一些数据的出现值是固定的,那么这时为了增强阅读性,都给这些值起个名字。方便于阅读。而这个值不需要改变,所以加上final修...
2018-03-08 18:26:35
160
原创 面向对象-子父类中构造函数的特点(子类实例化过程)
子父类中的构造函数在对子类对象进行初始化时,父类的构造函数也会运行,因为子类的构造函数默认第一行有一条隐式的语句super();super():会访问父类中空参数的构造函数,而且子类中所有的构造函数默认第一行都是super();为什么子类一定要访问父类中的构造函数?因为父类中的数据子类可以直接获取,所以子类对象在建立时,需要先查看父类是如何对这些数据进行初始化的。所以子类字啊对象初始化时,要先访问...
2018-03-08 17:00:58
165
原创 面向对象-子父类中的函数特点(覆盖)
子父类中函数。当子类出现和父类一模一样的函数时,子类对象调用该函数,会运行子类函数的内容。父类的函数被覆盖。这种情况是函数的另一个特性:重写(覆盖)当子类继承父类,沿袭父类的功能,到子类中,但是子类虽具备该功能,功能的内容却和父类不一致,没有必要定义新功能,而是使用覆盖特殊,保留父类的功能定义,并重写功能内容。覆盖:1、子类覆盖父类,必须保证子类权限大于等于父类权限,才可以覆盖,否则编译失败。2、...
2018-03-08 16:57:58
202
原创 面向对象-子父类中变量的特点
子父类出现后,类成员的特点:类中成员:1、变量 2、函数 3、构造函数变量:如果子类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this,子类要访问父类中的同名变量,用super。super的使用和this的使用几乎一致this代表本类对象的引用super代表父类对象的引用代码:class Fu{ int num = 4;}class Zi extends Fu{ int ...
2018-03-08 15:03:55
138
原创 面向对象-继承
继承:1、提高了代码的复用性2、让类与类之间产生了关系,有了这个关系,才有了多态的特性。注意:千万不要为了获取其他类的功能,简化代码而继承。必须是类与类之间有所属关系才可以继承,所属关系是a。Java语言只支持单继承,不支持多继承。因为多继承容易带来安全隐患:当多个父类中定义相同功能,功能内容不同时,子类对象不确定要运行哪一个,但是Java保留这种机制,并用另一种体现形式来完成表示:多实现。Jav...
2018-03-08 13:41:11
115
原创 面向对象-单例设计模式
单例设计模式 就是保证该类在程序中只能存在一个对象,所以不能让别人实例化该类,所以要私有化(private)该类的构造函数,但是你要为别人提供一个该类的唯一对象,所以你要在该类中定义一个静态的方法返回本类对象。设计模式:解决某一问题最行之有效的方法单例设计模式:解决一个类在内存只存在一个对象想要保证对象唯一:1、为了避免其他程序过多建立该类对象,先禁止其他程序建立该类对象2、还为了让其他程序可以访...
2018-03-08 11:51:45
149
原创 面向对象-对象的初始化过程
Person p = new Person(null, 0);这句话都做了什么事情?1、因为new用到了Person.class,所以会先找到Person.class文件并加载到内存中。2、执行该类中的static代码块,如果有的话,给Person.class类进行初始化。3、在堆内存中开辟空间,分配内存地址。4、在堆内存中建立对象的特有属性,并进行默认初始化。5、对属性进行显示初始化。6、对象进...
2018-03-08 10:29:56
517
原创 面向对象-静态代码块
静态代码块格式:static{ 静态代码块中的执行语句}特点:随着类的加载而执行,只执行一次,并优先于主函数。用于给类进行初始化。代码:class Staticcode{ static { System.out.println("a"); }}class code{ static { System.out.println("b"); } public static...
2018-03-07 18:23:06
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人