
Java拓展
文章平均质量分 58
mayundoyouknow
喜欢运动,爱思考
展开
-
Java中GCRoots包括哪些
Java中GCRoots包括哪些在垃圾回收过程中如何判断一个对象是否是垃圾,有两种算法。一种是引用记数法,一种是可达性分析法。引用记数法是早期垃圾回收器中使用的算法,每一个对象维护一个该对象被引用的记数,每引用一次,记数加1,每减少引用1次,引用减1,当引用为0时,表示该对象不再被引用,可以作为垃圾被清除。但是引用记数法有一个最致命的问题,就是无法解决循环引用的问题。 可达性分析法,是通过从GCRoots出发,找出内存中的引用链,那么链中的对象表示可达,即不能作为被垃圾回收的。引用链之外的对象即可作转载 2022-01-05 17:53:24 · 417 阅读 · 0 评论 -
学习java应该如何理解反射?
反射是一个非常重要的知识点,在学习Spring 框架时,Bean的初始化用到了反射,在破坏单例模式时也用到了反射,在获取标注的注解时也会用到反射······当然了,反射在日常开发中,我们没碰到过多少,至少我没怎么用过。但面试是造火箭现场,可爱的面试官们又怎会轻易地放过我们呢?反射是开源框架中的一个重要设计理念,在源码分析中少不了它的身影,所以,今天我会尽量用浅显易懂的语言,让你去理解下面这几点:(1)反射的思想以及它的作用: 概念篇(2)反射的基本使用及应用场景: 应用篇(3)使用反射能给我转载 2021-12-30 16:33:08 · 314 阅读 · 0 评论 -
ThreadPoolExecutor实际线程池管理线程
线程池的目的防止线程的随意创建,无法管理,将我们执行的线程放入线程池中执行,实际同时执行的线程数量依赖CPU几核;1.线程池常用管理处理并行执行:threadPool = ThreadPool.getInstantiation(); threadPool.addParallelTask(new Runnable() {});串行执行:threadPool = ThreadPool.getInstantiation(); threadPool.addSerialTask(new Runna原创 2021-07-22 17:57:11 · 486 阅读 · 0 评论 -
TCP和UDP的区别和优缺点
1、TCP与UDP区别总结:1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付Tcp通过校验和,重传控制,序号标识,滑动窗口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。3、UDP具有较好的实时性,工作效率比TCP高,适用于对高速传输和实时性有较高的通信或广播通信。4....转载 2020-10-26 18:44:43 · 585 阅读 · 0 评论 -
java常用设计模式总结
设计模式详细讲解推荐阅读 :https://refactoringguru.cn/design-patterns/structural-patterns掌握常用的几种(最起码单例模式、工厂模式),了解其他的设计模式即可,做到手里有粮,心里不慌。首先,掌握每种模式的定义及使用场景。其次,掌握一个形象的例子,简单的过一遍代码。学习设计模式的真正目的:编程时,有意识地面向接口编程,多用封装、继承、组合、多态等OOP思想,而不仅仅是死记几类设计模式。常用的设计模式分类:创建型(创建一个对象):单例模式、..转载 2020-10-21 18:40:22 · 170 阅读 · 0 评论 -
网络编程-BIO和NIO的理解
1.BIO和NIO简介BIO:同步阻塞式IO,服务器实现模式为一个连接一个线程,即客户端有连接请求时服务器端就需要启动一个线程进行处理,如果这个连接不做任何事情会造成不必要的线程开销,当然可以通过线程池机制改善;NIO:同步非阻塞式IO,服务器实现模式为一个请求一个线程,即客户端发送连接请求都会注册到多路复用器上,多路复用器轮训到连接有I/O请求时才启动一个线程进行处理;AIO(NIO.2):异步非阻塞式IO,服务器实现模式为一个有效请求一个线程,客户端的I/O请求都是由OS先完成了再通知服务器原创 2020-09-28 18:04:44 · 848 阅读 · 0 评论 -
如何做一个软件项目经理? ----写给公司所有的开发人员
第一部分:软件项目经理的要求首先是一个管理者,其次熟悉某些工具,某几种语言,行业背景,项目管理技能。软件项目经理面临的恶劣环境,我们绝大部分软件企业运行在相对混乱的状态(CMM一级),组织不大可能对项目以及项目经理的责任做出明确、合适的界定,所以,影响项目成功的一切因素都是项目经理的责任,包括客户、环境、考核、激励等等。一、责任心。取得项目的成功无疑是项目经理的责任。项目经理只有把客户的满意和企业长期利益作为自己的责任,项目成功才有可靠的基础,对于公司的战略性项目尤其如此。二、常识和直觉。大转载 2020-09-03 15:41:12 · 2858 阅读 · 0 评论 -
https实现原理(SSL认证过程)
目录1.https验证原理1.1原理图1.2https建立连接过程1.2.1 客户端访问https连接1.2.2 - 1.2.3 服务端发送证书(公钥)给客户端1.2.4- 1.2.5 客户端验证服务端的证书1.2.6 - 1.2.7 服务端接收加密信息,解密得到客户端提供的随机字符串1.2.8 客户端验证服务端返回的握手信息,完成握手1.3 验证总结2.SSL请求完整过程示例3.客户端验证证书的合法性Http协议由于 HTTP 协议在通信过程中,是基于明原创 2020-09-03 10:15:43 · 6781 阅读 · 0 评论 -
Java集合类实现整理及Concurrent并发包整理总结(CAS,AQS)
目录1.集合包1.1 ArrayList1.2 LinkedList1.3 Vector1.4 Stack1.5 HashSet1.6 TreeSet1.7HashMap1.8 TreeMap2.并发包2.1ConcurrentHashMap2.2 ReentrantLock2.3 Condition2.4 CopyOnWriteArrayList2.5 CopyOnWriteArraySet2.6 ArrayBlockingQueu..原创 2020-08-05 16:18:26 · 513 阅读 · 0 评论 -
JDK1.8HashMap源码分析说明
目录1.HashMap数据存储结构2.HashMap成员变量3.HashMap构造方法4.HashMap数据操作4.1put(key,value)4.2get(key)5.get()和put()方法的辅助操作5.1resize()5.2treeifyBin()6.get()和put()方法的辅助类6.1Node6.2KeySet6.3Values6.4EntrySet6.5KeyIterator,ValueIterator,EntryIterat原创 2020-05-30 17:42:20 · 336 阅读 · 0 评论 -
Java中的堆和栈的区别
当一个人开始学习Java或者其他编程语言的时候,会接触到堆和栈,由于一开始没有明确清晰的说明解释,很多人会产生很多疑问,什么是堆,什么是栈,堆和栈有什么区别?更糟糕的是,Java中存在栈这样一个后进先出(Last In First Out)的顺序的数据结构,这就是java.util.Stack。这种情况下,不免让很多人更加费解前面的问题。事实上,堆和栈都是内存中的一部分,有着不同的作用,而且一个程序需要在这片区域上分配内存。众所周知,所有的Java程序都运行在JVM虚拟机内部,我们这里介绍的自然是JVM(虚转载 2020-05-18 11:09:11 · 395 阅读 · 0 评论 -
HTTP协议,HTTP请求和响应,TCP三次和四次握手
1.HTTP协议是什么?2.HTTP请求和响应2.1HTTP请求2.2HTTP响应2.3HTTP请求和响应流程3.TCP三次握手和四次握手4.HTTP七层协议原创 2020-05-18 10:47:35 · 2472 阅读 · 0 评论 -
Java常见数据结构整理(数组,栈,队列,链表,红黑树)二
1.链表2.树原创 2020-04-14 20:41:47 · 622 阅读 · 0 评论 -
Java常见数据结构整理(数组,栈,队列,链表,红黑树)一
1.数组数组是最简单、也是使用最广泛的数据结构。栈、队列等其他数据结构均由数组演变而来。下图是一个包含元素(1,2,3和4)的简单数组,数组长度为4。每个数据元素都关联一个正数值,我们称之为索引,它表明数组中每个元素所在的位置。大部分语言将初始索引定义为零。数组分为两种类型:一维数组,多维数组;1.1数组基本操作1)Insert——在指定索引位置插入一个元素2)Get——返...原创 2020-04-07 21:15:49 · 651 阅读 · 0 评论 -
Java虚拟机JVM整理
目录1.虚拟机JVM是什么?2.虚拟机执行流程图3.类加载系统3.1类加载系统流程3.2自定义类加载器4.运行时数据区4.1字节码加载流程4.2运行时数据区划分4.3内存溢出实例4.3.1堆溢出4.3.2虚拟机栈和本地方法栈溢出4.3.3方法区和运行时常量池溢出4.3.4则抛出OutOfMemoryError异常4.4内存溢出排查5...原创 2020-04-04 19:29:49 · 451 阅读 · 0 评论 -
Java常见排序算法及对应的时间复杂度和空间复杂度
排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特定的使用场合,很难通用。因此,我们很有必要对所有常见的排序算法进行归纳。排序大的分类可以分为两种:内排序和外排序。在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序。下面讲的排序都是属于内排序。内排序有可以分为以下几类: (...原创 2020-04-03 22:27:52 · 2235 阅读 · 1 评论 -
Eclipse下访问Tomcat服务器404错误
出现的几种情况1.URL地址写错了,例如:访问地址应该是http://localhost:8888/ShiroTest/user/showUser?id=1,而我错误的把访问地址大小写写错了(访问地址:写成了http://localhost:8888/ShiroTest/user/showuser?id=1)就会导致404的错误2.web.xml中未配置SpringMVC对应路原创 2018-01-09 15:09:52 · 1143 阅读 · 0 评论 -
java web工程web.xml配置详解
转载自:http://blog.youkuaiyun.com/believejava/article/details/43229361这篇文章主要是综合网上关于web.xml的一些介绍,希望对大家有所帮助,也欢迎大家一起讨论。 ---题记Web.xml详解:1.web.xml加载过程(步骤)首先简单讲一下,web.xml的加载过程。当启动一个WEB项目时,容器包括(JB转载 2018-01-09 17:19:57 · 86095 阅读 · 17 评论 -
Tomcat下Web应用如何根目录
1.开发中Web应用如何部署到根目录通常开发过程中一般访问的方式是http://ip:8080/项目名(例如:ProviderProject),不会是直接访问根路径的方式;在通过Eclipse配置完工程开发过程中发布的用的Tomcat以后会出现如下目录:我们找到Servers下的server.xml配置文件,查看配置的访问路径path为“/ProviderProject”,只需要做原创 2018-01-08 15:48:11 · 10666 阅读 · 0 评论 -
WebSocket 是什么原理?
在知乎上看到的一片文章,觉得不错也就转载分享一下吧;转载自:https://www.zhihu.com/question/20215561额。。最高票答案没答到点子上,最后怎么跑到Nodejs上去了。。Websocket只是协议而已。。我一个个来回答吧一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的不算...转载 2018-05-15 16:50:23 · 320 阅读 · 0 评论 -
java 重定向和转发的区别
response.sendredirect("http://www.foo.com/path/error.html");重定向和转发有一个重要的不同:当使用转发时,JSP容器将使用一个内部的方法来调用目标页面,新的页面继续处理同一个请求,而浏览器将不会知道这个过程。 与之相反,重定向方式的含义是第一个页面通知浏览器发送一个新的页面请求。因为,当你使用重定向时,浏览器中所显示的URL会变成新转载 2018-01-15 18:55:51 · 201 阅读 · 0 评论 -
Eclipse中WebContent目录理解
是JAVA WEB项目中用来存放JSP,JS,CSS,图片等文件的,其中webroot/WEB-INF用来存放SRC编译好的相关的文件,和需要被保护的JSP文件等。2.webroot是MyEclipse,JAVA WEB项目默认的目录。WebContent是Eclipse,JAVA WEB项目默认的目录。两者意义是一样的原创 2018-01-04 15:04:34 · 45879 阅读 · 0 评论 -
理解Java虚拟机体系结构
转载自:https://www.cnblogs.com/lao-liang/p/5110710.html1 概述 众所周知,Java支持平台无关性、安全性和网络移动性。而Java平台由Java虚拟机和Java核心类所构成,它为纯Java程序提供了统一的编程接口,而不管下层操作系统是什么。正是得益于Java虚拟机,它号称的“一次编译,到处运行”才能有所保障。1.1 Java转载 2017-12-28 16:42:48 · 215 阅读 · 0 评论 -
short与Unsigned short以及Java基本类型
C和C++中:short两个字节长度,其中符号位占了一位。所以实际数值位数是15位。取值范围为:-32768~+32768。unsigned short没有符号位,所以实质数值位数是16位。取值范围:0~65536。Java中的基本类型都是有符号类型,也就是数值类型都有正负号。所占位数,不随硬件变化。其基本数据类型大小如下:char 2个字节,16位;byte 1个字节, 8位;...转载 2019-06-15 09:53:05 · 16506 阅读 · 1 评论 -
java笔记--关于线程同步(7种同步方式)
关于线程同步(7种方式) --如果朋友您想转载本文章请注明转载地址"http://www.cnblogs.com/XHJT/p/3897440.html"谢谢-- 为何要使用同步? java允许多线程并发控制,当多个线程同时操作一个可共享的资源变量时(如数据的增删改查), 将会导致数据不准确,相互之间产生冲突,因此加入同步锁以避免在该线程没有完成操作之前,被转载 2018-01-03 12:31:23 · 168 阅读 · 0 评论 -
Java IO操作——回退流PushbackInputStream
学习目标: 掌握回退流的工作原理使用PushbackInputStream完成回退操作回退:给了用户第二次读的机会。回退流在JAVA IO中所有的数据都是采用顺序的读取方式,即对于一个输入流来讲都是采用从头到尾的顺序读取的,如果在输入流中某个不需要的内容被读取进来,则只能通过程序将这些不需要的内容处理掉,为了解决这样的处理问题,在JAVA中提供了一种回退输入流(PushbackInputStrea...转载 2018-05-22 18:35:35 · 768 阅读 · 1 评论 -
Java多文件批量生成zip
1.Java多文件批量生成zip/** * 生成压缩包 * @param request * @param campId * @return */ public static String generateZip(HttpServletRequest request, String campId, ...原创 2018-06-06 17:20:42 · 363 阅读 · 0 评论 -
Mybatis最入门---代码自动生成(generatorConfig.xml配置)
经过前文的叙述,各位看官是不是已经被Mybatis的强大功能给折服了呢?本文我们将介绍一个能够极大提升我们开发效率的插件:即代码自动生成。这里的代码自动生成包括,与数据库一一对应的实体对象,Mapper基本结构文件,与Mapper对应的基本接口文件。本文,我们只介绍这个插件的基本用法,更多内容,就请读者先自行学习吧。准备工作:a.操作系统 :win7 x64转载 2017-03-23 17:40:29 · 667 阅读 · 0 评论 -
汽车CAN通信基础知识-数据类型(Java,C,JS之间转换)
目录1.Java中int或long类型和HEX转换1.1int或long类型转换十六进制字符串格式说明1.2HEX字符串转为int或者long类型值2.Java中字节和比特位读取顺序理解2.1Java中的数组都是从左到右读取数据,索引位置从左侧0开始,(0,1,2....)2.2bit位都是从右侧读取开始位2.2.1JS实现了每个字节从左到右读取2.2.2J...原创 2019-07-24 15:25:12 · 2002 阅读 · 0 评论 -
Java 十大常用框架
十大常用框架:一、SpringMVC二、Spring三、Mybatis四、Dubbo五、Maven六、RabbitMQ七、Log4j八、Ehcache九、Redis十、Shiro延展阅读:一、SpringMVCSpring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想...转载 2019-07-16 07:50:14 · 6153 阅读 · 3 评论 -
java基本数据类型范围
java有三种基本数据类型:数值型、字符型、布尔型。数值型又分为:byte、short、int、long、float、double字符型为:char布尔型为:boolean下面代码输出这几种数据类型的取值范围以及所占据的空间public class data { public static void main (String []args) { Sys...转载 2019-06-15 08:00:25 · 633 阅读 · 0 评论 -
【服务器架构】十张图带你了解大型网站架构
目录1、初始阶段的网站架构2、应用服务和数据服务分离3.使用缓存改善网站性能4、使用应用服务器集群改善网站的并发处理能力5、数据库读写分离6、使用反向代理和CDN加上网站相应7、使用分布式文件系统和分布式数据库系统8、使用NoSQL和搜索引擎9、业务拆分10、分布式服务说道大型网站,就的先说大型网站的特点:高并发,大流量,高可用,海量数据等。下面就...转载 2019-04-26 17:16:04 · 3492 阅读 · 1 评论 -
字符编码笔记:ASCII,Unicode 和 UTF-8
今天中午,我突然想搞清楚 Unicode 和 UTF-8 之间的关系,就开始查资料。这个问题比我想象的复杂,午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。我尽量写得通俗易懂,希望能对其他朋友有用。毕竟,字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识。一、ASCII 码我们知道,计算机内部,所有信息最终都是一个二进制值...转载 2019-04-04 15:22:12 · 156 阅读 · 0 评论 -
文加图, 理解Http请求与响应
1. http请求和响应步骤在讲解OkHttp之前, 我们首先来个高清大图, 看下http请求的整个步骤, 有个整体概念. 2. http每一步详细内容在一次完整的HTTP通信过程中, Web浏览器与Web服务器之间将完成下列7个步骤:2.1 建立TCP连接在HTTP工作开始之前, Web浏览器首先要通过网络与Web服务器建立连接, 该连接是通过TCP来完成的, 该协议与IP协...转载 2018-08-20 11:58:34 · 354 阅读 · 0 评论 -
Java多文件批量生成zip下载
1.请求下载URL定义@RequestMapping("/downExcel") public void downExcel(HttpServletRequest request, HttpServletResponse response, String type, String campId) { //下载文件配置// ResponseUtil.confi...原创 2018-06-06 17:31:59 · 2541 阅读 · 0 评论 -
Java泛型深入理解
转载自:http://blog.youkuaiyun.com/sunxianghuang/article/details/51982979泛型之前在面向对象编程语言中,多态算是一种泛化机制。例如,你可以将方法的参数类型设置为基类,那么该方法就可以接受从这个基类中导出的任何类作为参数,这样的方法将会更具有通用性。此外,如果将方法参数声明为接口,将会更加灵活。在Java转载 2017-12-27 13:57:31 · 337 阅读 · 0 评论 -
Java垃圾回收机制
转载自:http://blog.youkuaiyun.com/zsuguangh/article/details/6429592综合了若干人的blog~1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该转载 2018-01-02 16:56:23 · 166 阅读 · 0 评论 -
Java - Collection
Collection层次结构Collection[plain] view plain copy子接口 Set,List 集合中只能放置对象的引用,不能放置原生数据类型, 我们需要使用原生数据类型的封装类才能加入到集合中 Ordered与Sorted接口转载 2017-12-25 21:25:15 · 151 阅读 · 0 评论 -
JS中button控件click事件无法响应的问题
再点击登录按钮时无法响应JS事件,后来发现button控件的id值和onclick中的方法名相同导致的,修改id为loginbtn即可 function login(){ }确认登录原创 2017-05-05 12:31:02 · 15269 阅读 · 2 评论 -
Layui前端框架导航栏使用介绍
LayUI介绍Layui 是一款采用自身模块规范编写的国产前端UI框架,遵循原生HTML/CSS/JS的书写与组织形式,她更多是为服务端程序员量身定做,你无需涉足各种前端工具的复杂配置,只需面对浏览器本身,让一切你所需要的元素与交互、从这里信手拈来。LayUI优点由于开发项目必须要在IE8上支持,选择LayUI前端UI框架,Layui兼容除IE6/7以外的全部浏览器,并且多数结构支原创 2017-05-12 15:25:32 · 36341 阅读 · 6 评论