java
吴一尘
这个作者很懒,什么都没留下…
展开
-
HashMap在JDK1.7和1.8主要区别
HashMap在JDK1.7和1.8主要区别public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable首先从声明上来看,HashMap继承自AbstractMap 实现了Map、Cloneable、Serializab...原创 2020-04-15 15:51:08 · 517 阅读 · 0 评论 -
List集合源码解析
java集合之List集合源码解析1.为什么会有集合的概念 数组在声明的时候就需要固定大小,集合不是可以扩容。Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。 集合的继承关系如下: List集合可以存储有序且可重复的数据。有序指的是:集合保存了元素的插入顺序,可重复表示的是...原创 2020-04-14 15:27:57 · 331 阅读 · 0 评论 -
类的初始化顺序;字段和属性的定义
类的初始化顺序;字段和属性的定义首先必须知道静态成员属于类,非静态成员属于对象package static关键字;/* * 类的加载顺序:静态成员默认初始化(顺序)-静态成员显示初始化(顺序)-main方法。 如果有父类先执行父类的初始化(执行顺序一样) * 注意: 什么时候执行非静态成员呢? * 只有实例化类之后才会执行非静态成员的,因为非静态成员是属于实例对象的,而静态成员是...转载 2018-10-10 15:22:03 · 651 阅读 · 0 评论 -
局部内部类访问局部变量时,变量必须用final修饰
直接看例子:public class Test{ public void play() { int x=4; class InTest{ public void f() { System.out.println(x); } } new InTest().f(); } public static void main(String[] args) { ...原创 2018-10-24 10:15:02 · 5502 阅读 · 0 评论 -
TCP通信中的readLine()方法遇到的问题
TCP通信中的readLine()Server.javaServerSocket ss=new ServerSocket(10086);Socket s=ss.accept();BufferedReader br=new BufferedReader(new InputStreamReader(s.getInputStream()));// 封装目的地文本文件 BufferedWr...原创 2018-11-06 10:36:22 · 1748 阅读 · 1 评论 -
java动态代理原理详解源码分析
java动态代理原理详解什么是代理?简单的来说就是厂家不直接卖商品而是通过销售来卖,这里的销售商就是代理,厂家就是委托。也就是在厂家和商品之间增加了一定的间接性!那么这样的好处是什么?隐藏委托类的实现。可以实现客户与委托类间的解耦,在不修改委托类代码的情况下能够做一些额外的处理。(当其中一位客户还需要更多的要求,在不违背开闭原则的情况下,代理类可以增加一些额外的处理。)静态代理由程...原创 2018-12-14 21:58:44 · 302 阅读 · 0 评论 -
正则表达式
正则表达式标准字符集合\d :任意一个数字。0~9中的任意一个 (\D相反)\w : 任意一个字母、数字或者下划线(\W取反)\s : 空白符(制表符、空格符、换行符). : 任意一个字符(换行符除外)[\s\S]可以表示任意字符自定义字符集合[] :表示单个字符。例:[3-9]表示3到9之间任意一个数字[^] : 上面的取反[a-d[m-...原创 2018-12-14 22:02:04 · 233 阅读 · 0 评论 -
JDBC和数据库连接池的使用
JDBC和数据库连接池的使用1.JBDC和驱动程序 JDBC提供了一种基准(JAVA API),据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 我们安装好数据库之后,应用程序是没法连接使用数据库的,需要通过驱动程序来使用,驱动程序就是实现了JDBC的jar,不同的数据库有不同的驱动程序。2.JDBC中的接口1. Driver接口 Driver接口由数据库...原创 2019-03-11 17:24:06 · 455 阅读 · 0 评论 -
关于String的赋值创建和new String的过程的解读
关于String的创建过程和intern()解释1.字面值和new创建 String:不可改变的Unicode字符序列,它的创建是一种池化思想,把需要共享的数据放在池中,用一个存储区域来存放一些公用资源以减少存储空间的开销。String类的数据都会存放在字符串常量池中,JDK1.7后该常量池被移到了堆中! String s1 = "HelloWorld"; String s2=new...原创 2019-04-16 16:10:44 · 1021 阅读 · 0 评论 -
类的加载和内存分配的过程
类的加载和内存分配的过程1.类的加载过程在java应用程序开发中,只有被java虚拟机装载的Class类型才能在程序中使用。只要生成的字节码符合java虚拟机的指令集和文件格式,就可以在JVM上运行class文件加载将编译好的.java程序,通过java编译器生成.class文件,然后由类加载机制加载到jvm中,存储在方法区中。并且会随之生成一个相应的Class对象,这个对象一般也...原创 2018-10-09 19:30:42 · 1341 阅读 · 0 评论 -
进程和线程
进程和线程背景:当我们执行一段代码,运行一个程序的时候,这个程序所需要的资源必须到位(显卡,GPS之类的),我们将除了CPU之外的PC资源统称为程序的上下文。一个电脑中会有多个任务同时执行,每个任务的时间片(CPU的分配时间)是定义好的,当任务的时间片用完之后,就会被切换出去,等待下一次CPU的到来。(所以说电脑中的任务看似是同时执行的,其实是CPU切换的速度很快—这是对于单核处理器而言)*...原创 2018-10-06 10:06:32 · 93 阅读 · 0 评论 -
java泛型详解(1)
为什么要使用泛型?一般的类和方法,只能使用具体的类型;要么是基本类型,要么是自定义类。如果我有这种需求:可以应用于多种类型的代码。该怎么办? 1. 创建多个class文件,从而可以创建多个不同类型的对象;缺点很明显:代码臃肿,重用性不高 2. 创建一个类文件,给这个类中的成员变量设置Object数据类型;编译期可能会通过,运行时有可能发生异常ClassCastException一般...原创 2019-04-14 10:31:20 · 165 阅读 · 0 评论 -
java面向对象高级特性-4.1基本类型包装类
4.1基本数据类型包装类有时我们需要将基本类型的数据构成一个对象来使用,有时要将对象中保存的基本数据类型的数据提取出来,这种基本数据类型数据与对象类型数据的相互转换,就需要基本数据类型的包装类。将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作数据Java会为每一个基础数据类型都提供一个相应包装类的目的,在于将Java的所有东西都抽象成对象,可以更方便的控制和使用。这就是面向对原创 2017-05-14 13:45:18 · 306 阅读 · 0 评论 -
4.7复用类
1.组合用法<将对象引用置于新类中> 直接上代码://toString方法()//java中所有的类都继承Object类,所有对象都会有toString()方法。//此方法是为了方便输出,例如:System.out.println(x),x不是一个String类型,这里就会调用toString方法。//如果你再类中重写了toString方法,那么就会调用重写的方法。class WaterS原创 2017-05-25 11:05:55 · 200 阅读 · 0 评论 -
4.4抽象类
1.抽象类的定义:在日常生活中,我们可以把具有相同性质的事物定义成一个类。交通工具类为例,他的对象可以是:飞机,火车,高铁。这些具体的对象有共同的性质,我们可以把这些具体的对象抽象定义成一个父类,把具体的对象定义成子类。父类中描述的是这些对象的共同特征,他没有够的信息来完整的描述某个对象,这样的类称为抽象类。抽象类往往用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,原创 2017-05-18 09:10:40 · 257 阅读 · 0 评论 -
4.6内部类
内部类的定义 一个类定义在另一个类中这样的类被称为内部类。 内部类的性内部类定义的位置可以在两处:1.当作外部类的成员来定义,2.在外部类的方法中定义。1.非静态内部非静态内部类和外部类其他的非静态成员一样也是依赖于外部类的对象,要先创建内部类对象必须先创建外部类对象。内部类对象既可以在外部类方法中创建,也可以在外部类之外创建: <外部类类名>.<内部类类名> 引用变量= 外部类对象引用原创 2017-05-20 13:56:10 · 190 阅读 · 0 评论 -
4.3 static修饰符
1.类变量与实例变量我是这么理解的:类变量就是可以直接使用类名来访问(用static修饰)当然也可以使用对象来访问,实例变量则需要通过创建实例来访问。类变量属于类,实例变量属于对象,不同对象的实例变量有不同的存储空间,而该类所有对象共享同一个类变量空间。public class A { static int q; int b; A(int b){ thi原创 2017-05-14 17:11:25 · 236 阅读 · 0 评论 -
4.5接口
1.接口的定义interface 部分转载至http://blog.csdn.net/OREO_GO/article/details/52102514?locationNum=4&fps=1 - 接口与类属于同一个层次,接口的作用是为了实现多重继承。接口中的成员变量有默认的public static final 属性,并且这些常量在定义时要赋值,成员方法有默认的public abstra原创 2017-05-19 21:53:12 · 357 阅读 · 0 评论 -
java基础知识
1. 标识符标识符的首字母为字母,下划线(_),美元符号标识符的尾字母为字母,下划线,美元符号,数字标志符不可以是关键字和保留字,但可以包含关键字和保留字标识符区分大小写不能出现连字符(-)和空格等特殊符号2.关键字所有的关键字都是小写3.数据类型java包含8种基本数据类型(byte,short,int,long,float,double,char,boolean)和引用类型,基本类型原创 2017-09-24 23:15:23 · 177 阅读 · 0 评论 -
工厂模式
一开始学工厂模式的时候一点也不明白,看了很多文章问了很多人为什么要使用工厂模式?为什么工厂模式就是解耦?看了几天有了点个人的理解,故写下来防止以后忘记。如果有什么不对或者理解不到位的地方,希望大神可以赐教。1.工厂模式的本质工厂模式又称为创建模式,它是建对象的一种最佳方式。工厂模式的本质就是用工厂方法代替new操作创建一种实例化对象的方式。一句话中总结就是方便创建 同种类型接口产品...原创 2018-04-07 21:29:04 · 11819 阅读 · 1 评论 -
类型信息-RTTI类型检查
RTTI的含义在运行时,识别一个对象的类型。这个对象就是Class对象,因为每一个类都有一个Class对象,通过这个对象我们可以了解到了的所有信息。 RTTI是如何表现的类型转换Class对象instanceof类型转换先上一个经典的Shape例子:import java.util.*;abstract class Shape{ abstract voi...原创 2018-07-24 16:11:24 · 194 阅读 · 0 评论 -
4.2处理对象
1.toString()方法在输出语句System.out.println(i)中,如果i为基本类型,则输出i的基本类型值;如果i为引用类型,如果引用为空则输出值为null,否则调用引用所指向的对象。java中所有的类的直接或者间接继承Object类,Object类中toString()定义如下:public String toString()。2.“==”与equals运算符“==”可以比较原创 2017-05-14 16:19:54 · 253 阅读 · 0 评论