- 博客(23)
- 收藏
- 关注
原创 【基础】JAVA学习简单总结(3)
String、StringBuffer与StringBuilder之间区别答:(1)运行速度:StringBuilder > StringBuffer > String。String为字符串常量,而StringBuilder和StringBuffer均为字符串变量,即String对象一旦创建之后该对象是不可更改的,但后两者的对象是变量,是可以更改的。(2)在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。(3)String:适用于少量...
2021-06-11 10:18:13
257
2
原创 【基础】JAVA学习简单总结(2)
1、Spring could和Spring boot答:Spring Could:Spring Cloud 为最常见的分布式系统模式提供了一种简单且易于接受的编程模型,帮助开发人员构建有弹性的、可靠的、协调的应用程序。Spring Cloud 构建于 Spring Boot 之上,使得开发者很容易入手并快速应用于生产中。我所理解的Spring Cloud就是微服务系统架构的一站式解决方案,在平时我们构建微服务的过程中需要做如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等操作,
2021-05-13 00:23:42
155
原创 【基础】JAVA学习简单总结(1)
1、面向对象思想,三个特性思想:区别于面向过程思想的针对程序的开发过程一步一步进行开发,面向对象是将程序当成一个对象进行分析并进行开发。特性:继承,封装,多态2、String的特点1.String类对象的相等判断使用equals() 方法完成,“==”实现的是地址数值的比较。2.字符串内容一旦声明则不可改变,String类对象内容的改变是依靠引用关系的变更实现的,创建一个新的对象进行引用,旧的对象若是没有被引用则等待回收。3.String类有两种实例化方式,使用直接赋值可以不产生垃圾
2021-05-12 22:06:49
266
2
转载 finalize()方法和finalization
首先finalize和finalization作为函数,属于析构函数,那么什么是析构函数呢?析构函数:是一个对象被撤销时自动调用的,析构与构造函数相反,当对象所在的函数一调用完毕,系统自动执行析构函数,往往用来做"清理善后"的工作finalize()方法java提供finalize()方法,当垃圾回收器准备释放内存的时候,会先调用finalize()方法垃圾回收器(garbage collector)决定回收某对象时,就会运行该对象的finalize()方法;finalize()方法也叫
2020-12-01 22:44:45
336
原创 final关键字、finally代码块、finalize()方法
final关键字final关键字,final可以修饰类、方法、属性。 如果一个类被final修饰,那么这个类就是最终类,不能派生出新的子类,不能作为父类被继承,该类中的所有方法都不能被重写,但是final类中的成员变量是可以改变的,要想final类中的成员变量的不可以改变,必须给成员变量添加final修饰。因此,一个类不能同时被final和abstract修饰,这两个关键字相互矛盾。 如果final修饰方法,那么这个方法是最终方法,不允许任何子类重写该方法,但子类仍可以使用该方法,注意:final参数用
2020-12-01 22:43:51
224
转载 Java中的两种异常类型和错误
Throwable是所有异常的根,java.lang.Throwable在Throwable中包含了错误(Error)和异常(Excetion)两类)错误,Error,java.lang.Error 异常,Exception,java.lang.Exception在异常中(Exception)又包含了运行时异常和非运行时异常运行时异常(RuntimeException), 又叫非检查(unchecked)异常,即不受检查的异常 非运行时异常(CheckedException),又叫检查(c
2020-12-01 20:52:49
514
转载 JVM垃圾收集器-对比Serial、Parallel、CMS和G1
4个Java垃圾收集器,错误的选择会对性能影响很大现在很多开发者仍然搞不清垃圾收集器。这一块在Java 8版本的改动也比较大,特别是去掉了PermGen永久代和带来一些新的让人激动的优化。提到垃圾收集,大多数人在每天的编程工作中都会用到并知道这个概念。其中最大的一个误解是一位JVM只有一个垃圾收集器,事实上它有4个,每个都有自己的优点和缺点。JVM并不会自动帮你选择,决定权在你手里,不同的选择会导致应用的吞吐量(throughtput)和停顿(pause)有巨大的不同。但这4个垃圾收集器的共同点
2020-12-01 20:16:16
248
转载 Java的各个版本和命名方式更改的事件原因以及解读
JDK版本与发行时间 版本 名称 发行日期 JDK 1.0 Oak(橡树) 1996-01-23 JDK 1.1 none(无) 1997-02-19 JDK 1.1.4 Sparkler(宝石) 1997-09-12 JDK 1.1.5 Pumpkin(南瓜) 1997-12-13 JDK 1.1.6 Abigail(阿比盖尔–女子名) 1998-04-24 JDK 1.1.7 Brutus(...
2020-11-30 22:51:28
362
原创 Java的堆结构和堆中的永久代(Perm Gen space)
堆结构JVM的堆是运行时数据区,所有类的实例和数组都是在堆上分配内存。它在JVM启动的时候被创建。对象所占的堆内存是由自动内存管理系统也就是垃圾收集器回收。堆内存是由存活和死亡的对象组成的。存活的对象是应用可以访问的,不会被垃圾回收。死亡的对象是应用不可访问尚且还没有被垃圾收集器回收掉的对象。一直到垃圾收集器把这些对象回收掉之前,他们会一直占据堆内存空间。永久代永久代主要存在类定义,字节码,和常量等很少会变更的信息。并且永久代不会发生垃圾回收,如果永久代满了或者超过了临界值,会.
2020-11-30 22:37:33
2116
转载 Enumeration接口和Iterator接口的区别
Enumeration速度是Iterator的2倍,同时占用更少的内存。但是,Iterator远远比Enumeration安全,因为其他线程不能够修改正在被iterator遍历的集合里面的对象。同时,Iterator允许调用者删除底层集合里面的元素,这对Enumeration来说是不可能的。public interface Enumeration<E>{ boolean hasMoreElements(); E nextElement();...
2020-11-29 18:59:24
297
原创 大O符号(big-O notation)
大O符号表示复杂度,复杂度一般包括时间复杂度和空间复杂度。时间复杂度指算法花费时间的复杂度。空间复杂度指存储数据所需空间的复杂度。大O符号表示程序运行时的渐变时间复杂度的上界。大O描述当数据结构中的元素增加时,算法的规模和性能在最坏的情境下有多好。大O还可以描述其他行为,比如内存消耗,大O符号可以对大量数据性能给予很好的说明。...
2020-11-28 23:10:26
1389
转载 【转】常见数据结构优缺点比较
数据结构 优点 缺点 数组 插入快,如果知道下标,可以非常快的存取 查找慢,删除慢,大小固定 有序数组 比无序的数组查找快 删除和插入慢,大小固定 栈 提供后进先出方式的存取 存取其他项很慢 队列 提供先进先出方式的存取 存取其他项很慢 链表 插入快,删除快 查找慢 二叉树 查找,插入,删除都快(如果树保持平衡) 删除算法复杂 红-黑树 查找,插入,删除都快,树总是平衡的 算法复杂
2020-11-27 23:23:38
508
转载 【转】长连接和短连接区别和优缺点
TCP与UDPudp:面向无连接的通信协议,数据包括目的端口信息和源端口信息优点:面向无连接,操作简单,要求系统资源较少,速度快,由于不需要连接,可进行广播发送缺点:发送数据之前不需要与对方建立连接,接收到数据时也不需要发送确认信号,发送端不知道接收端是否正确接接收,不会重发,不可靠。tcp:面向连接的通讯协议,通过三次握手建立连接,通讯完成时四次挥手断开连接优点:在数据传输时,有确认、窗口、重传、拥塞控制机制,能保证数据正确性,较为可靠缺点:速度相对慢一点,要求系统资源较多..
2020-11-26 23:52:37
363
原创 组网:三次握手和四次挥手
当网络通信时采用TCP协议时,在真正的读写操作之前,客户端与服务器端之间必须建立一个连接,当读写操作完成后,双方不再需要这个连接时可以释放这个连接。连接的建立依靠“三次握手”,而释放则需要“四次握手”,所以每个连接的建立都是需要资源消耗和时间消耗的。经典的三次挥手建立连接示意图:经典的四次挥手关闭连接示意图:...
2020-11-26 23:47:04
116
原创 三大集合:List、Map、Set
一、结构特点(1)List和Set是存储单列数据的集合,Map是存储键值对这样的双列数据的集合;(2)List中存储的数据是有顺序的,并且值允许重复;Map中存储的数据是无序的,它的键是不允许重复的,但是值是允许重复的;Set中存储的数据是无顺序的,并且不允许重复,但元素在集合中的位置是由元素的hashcode决定,即位置是固定的(Set集合是根据hashcode来进行数据存储的,所以位置是固定的,但是这个位置不是用户可以控制的,所以对于用户来说set中的元素还是无序的)。二、实现类1.
2020-11-24 21:50:02
1161
1
转载 【转】SQL删除的三个语句:DROP、TRUNCATE、 DELETE 的区别
主要介绍了SQL删除语句DROP、TRUNCATE、 DELETE 的区别,帮助大家更好的理解和学习sql语句,感兴趣的朋友可以了解下DROP: 1 DROPTABLEtest; 删除表test,并释放空间,将test删除的一干二净。TRUNCATE: 1 TRUNCATEtest; 删除表test里的内容,并释放空间,但不删除表的定义,表的结构还在。DELETE:1、删除指定数据删除表test...
2020-11-24 17:33:55
587
转载 【转】Object类的常用方法
Java语言不同于C++语言,是一种单根继承结构语言,也就是说,Java中所有的类都有一个共同的祖先。这个祖先就是Object类。object类的结构如图可知,Object类有12个成员方法,按照用途可以分为以下几种1,构造函数2,hashCode和equale函数用来判断对象是否相同,3,wait(),wait(long),wait(long,int),notify(),notifyAll()4,toString()和getClass,5,clone()6,finali...
2020-11-24 00:35:37
302
原创 JAVA中String的常用方法
equals():字符串是否相同equalsIgnoreCase():忽略大小写后字符串是否相同compareTo():根据字符串中每个字符的Unicode编码进行比较compareToIgnoreCase():根据字符串中每个字符的Unicode编码进行忽略大小写比较indexOf():目标字符或字符串在源字符串中位置下标lastIndexOf():目标字符或字符串在源字符串中最后一次出现的位置下标valueOf():其他类型转字符串charAt():获取指定下标位置的字符
2020-11-24 00:32:34
111
转载 【转】java类加载过程与双亲委派机制
1.类的加载、连接和初始化当程序使用某个类时,如果该类还未被加载到内存中,则系统会通过加载、连接、初始化三个步骤来对类进行初始化。如果没有意外,jvm将会连续完成这三个步骤,有时也把这三个步骤统称为类的加载和初始化1.1 类的加载类加载器根据类的全名以二进制流的形式读取class文件到JVM内存的方法区中,然后转换为一个与目标类对应的java.lang.Class对象实例。1.2 类的连接链接阶段要做的是将加载到JVM中的二进制字节流的类数据信息合并到JVM的运行时状态中,经由验证、
2020-11-21 20:01:20
136
转载 【转】JVM 运行机制及其原理
JVMJVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。JVM声明周期JVM伴随Java程序的开始而开
2020-11-21 19:57:55
180
转载 【转】JAVA设计模式总结之23种设计模式
一、什么是设计模式 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多...
2020-11-21 16:41:30
255
转载 【转】消息队列
作者:Java3y链接:https://www.zhihu.com/question/54152397/answer/657234090来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。一、什么是消息队列?消息队列不知道大家看到这个词的时候,会不会觉得它是一个比较高端的技术,反正我是觉得它好像是挺牛逼的。消息队列,一般我们会简称它为MQ(Message Queue),嗯,就是很直白的简写。我们先不管消息(Message)这个词,来看看队列(Queue)。.
2020-11-21 16:08:12
200
1
转载 【转】公平锁与非公平锁
在Java并发编程中,公平锁与非公平锁是很常见的概念,ReentrantLock、ReadWriteLock默认都是非公平模式,非公平锁的效率为何高于公平锁呢?究竟公平与非公平有何区别呢?首先先简单从名字上来理解,公平锁就是保障了多线程下各线程获取锁的顺序,先到的线程优先获取锁,而非公平锁则无法提供这个保障。看到网上很多说法说非公平锁获取锁时各线程的的概率是随机的,这也是一种很不确切的说法。非公平锁并非真正随机,其获取锁还是有一定顺序的,但其顺序究竟是怎样呢?先看原创图:该图出自https://w.
2020-11-21 16:05:02
92
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人