![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java基础
笨蛋丶
g.csdn.net/qq_40064635
展开
-
读源码---HashMap-JDK1.8
目录概述继承体系数据结构源码解析基本属性内部类构造器put方法putAll方法resize方法get方法remove方法概述HashMap是基于哈希表的 Map 接口的实现的。是一种典型的Key-Vlaue,允许使用null值和null键,HashMap不保证映射顺序,不保证顺序恒久不变。非线程安全。继承体系Serializable:启用其序列化功能,该接口没有方法和字段,仅用于表示可序列化的语义。Cloneable:启用字段复制,指示Object.clone()方法可以合法地对该类实例进行按字原创 2020-08-20 14:43:34 · 120 阅读 · 0 评论 -
面向对象:封装、多态、代码块(自用)
封装封装:按照信息隐藏的原则,将数据组织在一起。特点:1、信息的集合。2、信息的隐藏。多态定义:允许使用父类变量指向子类对象,允许使用接口变量指向实现类对象 ,但反过来不行。instanceof:用法:变量 instanceof 类型作用:判断变量是否匹配某个类型。原理:在父类和子类的继承层次关系中,由于子类能够继承父类的成员变量,并扩展出自己的成员。在继承树上,父类在上子类下...原创 2018-12-26 22:08:29 · 107 阅读 · 0 评论 -
面向对象:继承(自用)
继承将多个类中相同的方法和属性抽取出来,进行封装继承的优点:1、代码可以重复使用。2、子类可以获得父类中所有没有被private修饰的方法和属性。3、设计程序变得更加简单4、子类可以扩展父类的属性和方法,并且拥有自己的独有的方法。 class B{ public void m(){ System.out.println("我不会嘤嘤嘤"); } } clas...原创 2018-12-25 21:18:27 · 93 阅读 · 0 评论 -
面向对象:包、构造方法(自用)
包包就是文件夹 ,1、利用表,可以组织相关的类。2、可以做到信息的隐藏(没有申明未public的类、属性不能跨包使用)如果需要使用其他包中的类,需要使用import导入。java.lang.*中的类和本包中的类,无需导入。构造方法构造方法:构造方法是一个特殊的方法。方法名和类名相同,没有返回类型。主要用于产生对象。如果一个类中没有定义构造方法,那么,虚拟机会自动为该类定义公有的无参构造...原创 2018-12-20 21:41:07 · 110 阅读 · 0 评论 -
面向对象:变量、堆栈(自用)
对象对象:是存在具体的实体,具有明确特征和定义的行为,面向对象:一种认识事物的方法,注重对事物整体的认识,最符合人类的罗辑思维。类:具有相同属性和行为的一组集合,类是对象的抽象,对象是类的实例。引用数据类型java的数据类型分两种:基本数据类型和引用数据类型。其中基本数据类型变量中存放的是具体的数据。而引用数据类型变量中存放的是对象的引用(对象在内存中的地址),引用数据类型有三种:类、...原创 2018-12-19 21:36:22 · 223 阅读 · 0 评论 -
重载与重写(自用)
重载发生在同一个类中,两个方法的方法名相同,参数列表不同(参数类型、个数、顺序),和返回类型无关。原创 2018-12-17 21:08:19 · 85 阅读 · 0 评论 -
参数(自用)
参数分为形式参数(形参)和实际参数(实参)。形式参数是一个方法中定义的局部变量,主要的作用是接收实参的值。通过形参可以做到跨方法使用数据。而实参就是给形参变量赋什么值。实参可以是变量,也是可以是常量。...原创 2018-12-15 22:40:26 · 109 阅读 · 0 评论 -
数组(自用)
数组是一个储存相同类型数据的容器。数据的特点1、数组是一段连续的内存空间,通过下标查找元素,下标从0开始,最大下标是数组长度减一。2、数组元素都是变量。3、数组元素的数据类型为定义数组时,数组的数据变量。4、数组创建时,会对每个元素进行初始化。(设置默认值)5、数组有定长性。数组在创建后,长度不能发生变化。...原创 2018-12-15 19:46:03 · 77 阅读 · 0 评论 -
运算符、选择和判断(自用)
=和==区别= 是赋值语句,将右边的值赋给左边的变量。== 是比较语句,判断右边的值和左边的值是否相等。&和&&的区别&位运算符:操作数可以是boolean,也可以是整数。&&是逻辑运算符,操作数只能是boolean;&&是短路运算符,当第一个条件为假是,第二个条件不做执行。&是非短路原创 2018-12-15 19:35:24 · 410 阅读 · 0 评论 -
数据类型(自用)
数据类型基本数据类型byte字节型数据,占用一个字节,默认值:0,取值范围-27~2 7-1(-128~127)。short短整型数据,占用两个字节,默认值:0,取值范围-215~2 15-1。int整型数据,占用四个字节,默认值:0,取值范围-231~2 31-1。long长整型数据,占用八个字节,默认值:0,取值范围-263~2 63-1float单精度浮点型数据,占用四...原创 2018-12-15 18:42:49 · 87 阅读 · 0 评论 -
装饰者模式(自用)
定义:动态地给一个对象添加一些额外的职责。也就是扩展功能,装饰者模式相对较继承产生子类更加灵活,便于代码的复用,就像彩虹(被装饰者),彩虹由好几种颜色(被装饰者)组成,颜色可以随意排列、添加。重点:装饰者与被装饰者拥有共同的基类,继承的目的是继承类型,而不是行为。代码实现:/** * 被装饰者 */public interface Eat { public abstract v...原创 2019-03-30 15:19:15 · 95 阅读 · 0 评论 -
接口(自用)
接口接口:被interface修饰的类叫做接口,接口可以看做是抽象类的特例。接口与抽象类的区别:在抽象类中可以定义抽象方法,也可以定义具体方法。但在接口中只能定义抽象方法和常量。接口可以看做是行为的抽象接口的特点想要使用接口,需要使用implements关键字,多态向下转型是需要使用关键字instanceof判断变量是否与转型的类型相匹配,防止转换异常。在接口中定义的方法,都是公共方法。...原创 2018-12-27 21:40:38 · 116 阅读 · 0 评论 -
异常(自用)
异常的API结构:T hrowable是父类,有两个子类:Error(错误)、Exception(异常),其中错误可以捕获,但不能被处理,而异常可以捕获,可以处理。异常(Exception)异常的分类:-----编译器异常:要求开发者必须处理。如果不处理,无法通过编译。(编译器会检查语法上是否有处理异常的代码,并提示我们修改)-----运行期异常:开发者可处理可不处理,就算不处理也可...原创 2018-12-31 18:39:51 · 84 阅读 · 0 评论 -
XML(自用)
XML:可扩展的标记语言,以标记和子标记方法描述对象数据。XML根元素:每个XML文档必须有且只有一个根元素。根元素是一个完全包含文档中其他所有元素的元素。所有元素都必须在根元素中定义。XML实体:(在XML文件中出现、<、>、"、等符号需要用预定义的实体来代替)实体 符号< <> >原创 2019-01-22 18:11:47 · 125 阅读 · 0 评论 -
代理模式(自用)
代理设计模式:主要作用是对某个类中的某个方法进行增强,其中动态代理比较常见。动态代理动态代理类在程序运行期间由JVM根据反射等机制动态的生成,所以不存在代理类的字节码文件。代理类和被代理类的关系是在程序运行时确定。动态代理要实现需要两个类和一个接口,一个代理类、一个被代理类、一个被代理类方法的接口。我们将被代理类中需要代理的方法抽取出来,做成一个接口。被代理的类:package mov...原创 2019-03-03 19:14:21 · 230 阅读 · 0 评论 -
六大设计原则和类与类之间的关系(自用)
类与类之间的关系1、实现:一个类实现一个接口2、泛化:一个类继承一个类3、关联:是依赖、聚合、组合的统称,表示两个类之间有关系。依赖:一个类是另一个类的方法参数,一类类是另一个类的方法返回类型,一个类是另一个类的局部变量。聚合:一个类是另一个类的组成部分,整体和部分的关系,也就是一个类是另一个类的属性。组合:组合就是一种强聚合,一个类是另外一个类不可分割的一部分,也表示一个类是...原创 2019-02-18 21:09:47 · 781 阅读 · 0 评论 -
工厂模式(自用)
工厂模式:将对象的创建和对象的使用分开进行。其主要作用是解耦。public class Factory { private static Properties pro = new Properties(); static{ try { pro.load(文件); } catch (Exception e) { // TODO Auto-generated catch b...原创 2019-01-23 17:28:04 · 71 阅读 · 0 评论 -
单例模式(自用)
单例模式的好处:让一个类产生对象只有唯一的一个,大量减少内存的消耗。单例的代码书写步骤:1、私有本类的构造方法2、创建本类的对象3、对外提供获取本类对象的方法单例模式实现的两种代码:饿汉式、懒汉式饿汉式:效率高、不能延时加载懒汉式:效率比懒汉式低一点、可以延时加载。饿汉式:public class Man { private Man(){ System.out.print...原创 2019-01-23 17:15:20 · 80 阅读 · 0 评论 -
多线程(自用)
线程基础多任务处理有两种类型:–基于进程–基于线程进程:一种自包容的运行程序,由操作系统直接管理,直接运行,有自己的地址空间,每个进程一开启都会消耗内存。线程:是进程内部单一的顺序控制流,一个进程拥有多个线程。多个线程共享一个进程的内存空间。多线程:在一个程序启动之后,我们可以在这个进程中开启多个执行空间,每个空间独立负责属于自己的功能,而这些独立的运行的空间称为线程,而多个线程处于一...原创 2019-01-23 17:01:16 · 119 阅读 · 0 评论 -
反射(自用)
反射反射:在编译期并不清楚应该加载那个类,类的加载在运行期间进行的,通过反射可以类进行加载、探知、自审。获取Class的方式1.对象.getClass2.类名.class3.Class.forName(“类的全路径”); //第一种 Class c1 = ManBean.class; //第二种 ManBean m1 = null; Class c2...原创 2019-01-21 18:03:04 · 65 阅读 · 0 评论 -
三层架构(自用)
三层架构:是项目的一种架构模式。持久层:主要完成数据的持久化。采用DAO模式。建立实体类和数据表进行映射。也就是哪个表对应那个类,那个列对应那个属性。而持久层主要的目的就是完成对象数据和关系数据的转换。业务层:主要完成业务操作。采用事物脚本模式。将一个业务中所有的操作封装成一个方法,保证这些方法中所有的数据库更新操作。同时成功或同时失败。不允许部分成功部分失败,这样引起数据混乱的操作。...原创 2019-01-20 14:21:07 · 139 阅读 · 1 评论 -
JDBC(自用)
jdbcjdbc:java database connction。是java连接数据库的一套标准。该标准提供了一系列的接口,由数据库厂商实现。开发者更具接口调用厂商实现的方法。这样,无论连接什么样的数据库都是一条API。orm:jdbc本质是流操作。完成是内存数据和磁盘数据的转换。对于Java而言,内存数据由对象表示,对于数据库而言,磁盘数据由数据库表来表示。所谓ORM就是对象和关系数据的...原创 2019-01-11 11:08:20 · 100 阅读 · 0 评论 -
I\O流(自用)
Java中的IO操作:读:从持久设备上把数据读取到内存中。也称为输入操作。写:从内存中的数据写到持久设备上,也称为输出操作。以内存为中心,数据进入到内存中称为读(输入),数据出内存称为写(输出)File类File类:操作文件或文件夹的。注意它不能去操作文件中的数据。File类的方法:获取:getXxxx方法创建:createNewFile 创建文件 mkdir 创建单级文件夹 ...原创 2019-01-05 20:01:32 · 234 阅读 · 0 评论 -
集合(自用)
集合JCF(Java Collections Framework)就是集合框架的简写。集合其实也是一种容器(用来存储数据的)。也可以说集合是一种对象。Collection接口,属于java集合框架体系中的顶层集合对象。在它的子接口中List接口和Set接口最为常用。集合遍历有专属的迭代器,在java,已经提供了一个集合对象专用的遍历方式:Iterator(迭代器对象)小细节:1、集合对象...原创 2019-01-02 21:57:10 · 91 阅读 · 0 评论 -
字符串(自用)
特点1、 String类不能被继承2、 String在java中属于一个类,用来描述字符串常量的类3、 String类中存储的字符串常量,在初始化后,就不能修改其值。(一旦修改就相当重新创建了一个新的字符串常量对象java中的String类中存储的字符串常量(String描述的字符串常量对象),其实不是直接存储堆内存中的,而是存储在常量池中。常用方法判断方法:equals :判断两...原创 2018-12-31 20:28:21 · 95 阅读 · 0 评论 -
网络编程(自用)
端口:应用程序用于数据交互的通道,用于实现程序间通信,每个应用程序都有固定的端口号。常见端口:协议 端口号Telnet协议 tel 23简单邮件传输协议 smtp 25文件传输协议 ftp 21超文本传输协议 http 30TCP协议:比较可靠的...原创 2019-03-05 14:36:25 · 91 阅读 · 0 评论