自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

转载 HashMap源码分析之面试必备

1、HashMap的数据结构是什么?2、为啥是线程不安全的?3、Hash算法是怎样实现的?4、HashMap是如何处理Hash碰撞的?5、增加元素的方法是怎么实现的?6、获取元素的方法时怎么实现的?1、HashMap的数据结构是什么?对于这个问题,笔者建议回答的时候对JAVA版本进行区分,因为不同版本下,HashMap的结构是有些差异的。回答:在JDK1.8之前HashMap是数组...

2019-08-17 15:45:19 73

转载 ArrayList和LinkedList的区别

1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。时间复杂...

2019-08-16 10:57:30 77

转载 JVM类生命周期概述:加载时机与加载过程

一个.java文件在编译后会形成相应的一个或多个Class文件,这些Class文件中描述了类的各种信息,并且它们最终都需要被加载到虚拟机中才能被运行和使用。事实上,虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型的过程就是虚拟机的类加载机制。本文概述了JVM加载类的时机和生命周期,并结合典型案例重点介绍了类的初始化过程,...

2019-08-15 21:18:00 86

转载 JAVA虚拟机关闭钩子(Shutdown Hook)

Java程序常常也会遇到进程挂掉的情况。一些状态没有正确的保存下来,这时候就须要在JVM关掉的时候运行一些清理现场的代码。JAVA中的ShutdownHook提供了比較好的方案。JDK提供了Java.Runtime.addShutdownHook(Thread hook)方法。能够注冊一个JVM关闭的钩子。这个钩子能够在一下几种场景中被调用:1、程序正常退出2、使用System.exit()...

2019-08-14 19:05:06 118

转载 Java中Native关键字的作用

一、认识 native 即 JNI,Java Native Interface凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。二、用 Java 调用 C 的“Hello,JNI”1、创建一个Java类,里面包含着一个 native 的方法和加载...

2019-08-13 20:15:02 71

转载 Scanner中nextInt()和nextline()读取字符串的问题

import java.util.Scanner;public class Main {public static void main(String[] args) { int s1; String s2; Scanner sc = new Scanner(System.in); System.out.print("请输入第一个数:"); s1 = s...

2019-08-12 17:38:48 397

转载 java中静态代码块详解

静态代码块的特点吗,随着类的加载而执行,而且只执行一次,可以使得静态代码块中的代码只执行一次,不需要每次调用这个变量都给它赋值。静态代码块:执行优先级高于非静态的初始化块,它会在类初始化的时候执行一次,执行完成便销毁,它仅能初始化类变量,即static修饰的数据成员。静态代码块写法,static{}对应的扩展下非静态代码块非静态代码块:执行的时候如果有静态初始化块,先执行静态初始化块...

2019-08-10 10:18:28 78

原创 abstract、private、static、final混合使用情况

1.abstract与private一起使用,相互矛盾abstract修饰的方法是要给子类重写,private修饰的方法只能本类访问。2.abstract与static一起使用,无意义abstact修饰的方法是抽象的,没有实体。而static修饰的方法,类是可以直接调用,调用抽象方法是没有意义的。3.abstract与final一起使用,相互矛盾final修饰方法不让子类重写,而abst...

2019-08-09 20:14:53 621

转载 Java多线程

1 多线程1.1 多线程介绍进程:进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程什么是...

2019-08-08 18:31:18 67

转载 java数据类型在内存中存储方式

1.java是如何管理内存的。java的内存管理就是对象的分配和释放问题。(其中包括两部分)分配:内存的分配是由程序完成的,程序员需要通过关键字new为每个对象申请内存空间(基本类型除外),所有的对象都在堆(Heap)中分配空间。释放:对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC必须监控每一个对象的...

2019-08-07 18:33:13 218

转载 Docker——理解好镜像和容器的关系

镜像也是 docker 的核心组件之一,镜像时容器运行的基础,容器是镜像运行后的形态。总体来说,镜像是一个包含程序运行必要以来环境和代码的只读文件,它采用分层的文件系统,将每一层的改变以读写层的形式增加到原来的只读文件上。这有点像洋葱,一层一层的,当我们后面学习了 Dockerfile ,相信大家对于这样的架构理解将更为准确。镜像与容器的关系前文已经向读者介绍过容器的使用了,细心的读者可能已...

2019-08-06 08:46:14 425

转载 WebSocket的实现与应用

说到websocket,就不得不提http协议的连接特点特点与交互模型。首先,http协议的特点是无状态连接。即http的前一次连接与后一次连接是相互独立的。其次,http的交互模型是请求/应答模型。即交互是通过C/B端向S端发送一个请求,S端根据请求,返回一个响应。那么这里就有一个问题了–S端无法主动向C/B端发送消息。而交互是双方的事情,怎么能限定一方发数据,另一方接数据呢。传统解决方...

2019-08-05 10:14:06 176

转载 java垃圾回收

垃圾回收机制垃圾回收(Garbage Collection,GC),释放垃圾占用空间,防止内存泄漏,对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收。引用计算算法通过在对象头中分配一个空间来保存该对象被引用的次数,如果该对象被其他对象引用,它的引用计数加1,如果删除该对象的引用,那么它的引用计数就减1,当引用计数为0时,对象会被删除。引用计数算法是将垃圾回收分摊到整个应用程序的运...

2019-08-03 08:52:22 71

转载 java跨平台

1、是么是平台Java是可以跨平台的编程语言,那我们首先得知道什么是平台,我们把CPU处理器与操作系统的整体叫平台。CPU大家都知道,如果计算机是人,那CPU就是人的大脑,它既负责思维运算,又负责身体各部件的命令控制。CPU的种类很多,除去我们熟知的Intel与AMD外,还有比如上面说到的SUN的Sparc,比如IBM的PowerPC等等,这些各个公司生产的CPU使用或相同或不同的指令集。指令...

2019-08-03 08:50:55 113

原创 TCP和UDP协议

传输层的TCP和UDP协议TCP/IP协议, 其中TCP(Transmission Control Protocol)称为 传输控制协议,IP(Internet Protocol) 称为网际协议。事实上TCP/IP协议,是一个协议族,是一个协议的集合。TCP/IP协议,定义了一整套规则。它定义整个互联网如何连接,如何通信,如何协商的最基础规则。TCP/IP协议分为五层,分别是应用层、传输...

2019-08-03 08:48:16 140

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除