
java
文章平均质量分 74
upupxi
缓慢而坚定的成长
展开
-
线程池面试题
https://blog.youkuaiyun.com/ye17186/article/details/894679191、线程池的好处?降低资源消耗,重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度,当任务到达时,任务可以不需要等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果频繁创建,会消耗系统资源,降低系统稳定性,使用线程池统一分配、调优和监控。2、线程池的核心参数?corePoolSize(核心线程数)核心线程会一直存在,即使没有任务执行;当线程数小于核心.原创 2022-01-13 17:53:37 · 972 阅读 · 0 评论 -
消息中间件RocketMQ
https://blog.youkuaiyun.com/MaxwellOcean/article/details/107419368原创 2021-11-04 15:24:14 · 103 阅读 · 0 评论 -
JVM之垃圾回收器
图解HotSpot虚拟机所包含的收集器:图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。新生代收集器:Serial、ParNew、Parallel Scavenge老年代收集器:CMS、Serial Old、Parallel Old整堆收集器: G1https://www.cnblogs.com/blythe/p/7488061.htmlhttps://www.cnblogs.com/chenpt/原创 2021-08-25 17:21:27 · 107 阅读 · 0 评论 -
JVM之垃圾回收算法
如何判断一个对象死亡- 引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。(循环引用的问题)- 可达性分析算法这个算法的基本思想是通过一系列称为 “GC Roots” 的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots 没有任何引用链相连的话,则证明此对象是不可用的。如何判断⼀个常量是废弃常量?运行时常量池主要回收的是废弃的常量。假如在常量池中原创 2021-08-24 17:00:42 · 124 阅读 · 0 评论 -
JVM运行时数据区(内存模型)
Java程序执行过程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件。加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。因此,在Java中我们常常说到的内存管理就是针对这段空间进行管理(如何分配和回收内存空间)。内存模型(J原创 2021-08-24 10:29:01 · 276 阅读 · 0 评论 -
JVM之类加载机制
JVM类加载机制类加载过程加载1、通过全类名获取此类的二进制字节流(zip、jar、war包中读取;其他文件生成jsp)2、将字节流所代表的静态存储结构转化为方法区的运行时数据结构3、在内存中生成一个代表该类的class类对象,作为方法区这些数据的访问入口连接1、验证包含:格式检查、语义检查、字节码验证、符号引用验证2、准备为类的静态变量分配内存,并将其初始化为默认值3、解析将常量池中所有的符号引用转为直接引用初始化为类的静态变量赋予正确的初始值类加载器启动类加载器(B原创 2021-07-07 16:37:12 · 132 阅读 · 0 评论 -
JDK1.7hashmap
一、原创 2020-12-16 09:32:03 · 159 阅读 · 0 评论 -
JDK1.6hashmap
JDK1.6 HashMap原创 2020-12-15 10:47:39 · 565 阅读 · 0 评论 -
内部类
一:形式参数问题 数据类型分为基本类型和引用类型。 基本类型:就是四类八种(整型 byte int short long 字符型 char 布尔型 boolean 浮点型 float double) 引用类型:数组,接口,类。 形式参数(基本类型):就是该基本类型的值。 形式参数(引用类型)原创 2017-04-17 21:30:35 · 252 阅读 · 0 评论 -
2017秋招面试整理(4)
10月4日 中秋节 一:内存中堆,栈,方法区的用法 栈空间:变量,对象的引用,函数调用的现场保护。 堆空间:new关键字和构造器创建的对象。是垃圾回收管理的主要区域。 方法区:和堆空间都是各个线程共享的内存系统,用于存储已经被JVM加载的类信息,常量,静态变量;程序中的字面量如直接书写的100,“hello”和常量都是都是放在常量池中,常量池是方法区的一部分 栈用完会发生StackOver原创 2017-12-03 19:08:58 · 241 阅读 · 0 评论 -
2017秋招之面试整理(3)
一:数据库优化的方法 1.在使用jdbc大批量插入数据时,明显使用(PreparedStatement + 批处理)性能更优 2.建立索引,创建索引一般有以下两个目的:维护被索引列的唯一性和提供快速访问表中数据的策略。95% 的数据库能 问题都可以采用索引技术得到解决。索引有助于提高检索性能,但过多或不当的索引也会导致系统低 效。因为用户在表中每加进一个索引,数据库就要做更多的工作。过多的索引甚原创 2017-12-03 19:03:00 · 204 阅读 · 0 评论 -
2017秋招之面试整理(2)
10月14日 一:cookie与session的区别? 1.cookie的数据存放在客户端的浏览器上,session的数据存放在服务器上。 2.cookie不是很安全,别人可以分析存放在本地的COOKIE进行欺骗,所以考虑到安全问题应该使用session。 3.session会在一定时间内保存在服务器上,当访问变多,会比较占用服务器的性能,考虑到减轻服务器性能方面,应该开率cookie。原创 2017-12-03 18:59:01 · 208 阅读 · 0 评论 -
2017秋招之面试整理(1)
一:JSP和servlet有哪些相同点和不同点,它们之间的联系是什么? 1: .jsp经编译后就变成了servlet(jsp本质就是servlet,jvm只能识别Java的类,不能识别jsp代码,web服务器将jsp的代码编译成Jvm能够识别的java的类) 2:jsp更擅长页面显示,servlet更擅长逻辑控制 3:servlet中没有内置对象,Jsp中的内置对象都是必须通过HttpServ原创 2017-12-03 18:48:46 · 430 阅读 · 0 评论 -
Java实现的快速排序算法
一:快速排序算法基本思想通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。二:快速排序视频讲解网址http://www.iqiyi.com/w_19rtz1oc1t.html(自己在网页找的视频,讲的挺好的,最开始理解不了,看完就感觉豁然开朗了)三:...原创 2018-03-28 15:39:01 · 171 阅读 · 0 评论 -
Java实现的堆排序算法
一:堆排序算法基本思想堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆是一个近似完全二叉树的结构,并同时满足堆性质:即子结点的键值或索引总是小于(或者大于)它的父节点。二:堆排序视频讲解网址http://www.iqiyi.com/v_19rrhzzs1k.html(自己在网页找的视频,讲的挺好的,最开始理解不了,看完就感觉豁然开朗了)三:源代码具体实现package co...原创 2018-03-28 15:45:19 · 337 阅读 · 0 评论 -
Java实现的希尔排序算法
一:希尔排序算法基本思想希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因D.L.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时...原创 2018-03-28 15:55:48 · 459 阅读 · 0 评论 -
常用API讲解
常用API讲解 一:基本数据类型包装类 1.1 如何完成以下需求: 需求1:我有一个数据,请问如何判断是否是int范围内的呢? int范围 -2^31 ~ 2^31-1 需求2:我有一个数据,我要得到该数据的二进制,八进制,十六进制如何实现呢? 按照以前讲过规律进行计算,但是比较麻烦。 为了方便基本类型的数据做更多原创 2017-04-26 21:30:28 · 352 阅读 · 0 评论 -
集合
每日一句:时间可真宝贵,不想去回忆,只想做好,明天又是美好的一天呢! 一:算法介绍+特点(栈、队列、数组、链表、Hash、树) 栈:先进后出。 队列:先进先出。 数组:查询快,增删慢。 链表:通过一个链子把多个结点(元素)连接起来,由数据和地址组成的一个元素,节点本身必须有一个地址值(就是下一个元素的地址值)。特点:查询慢,增删快。 hash:一般翻译做“散列”,也有直接音译为“哈希”的原创 2017-05-03 19:26:46 · 239 阅读 · 0 评论 -
HTTP协议(超文本传输协议)
http 超文本传输协议 顾名思义,专门用来在网络上传输超文本的协议!A:以下是俩个客户端浏览器向服务器发送的http请求数据。 通过套接字,编写服务器端和客户端的程序,来套取以下信息。(1)ie浏览器: GET / HTTP/1.1 Accept: text/html, application/xhtml+xml, / Accept-Language: zh-CN User-Agen原创 2017-07-27 16:11:31 · 823 阅读 · 0 评论 -
异常+文件+I/O流+设计模式
每日一句:越来越发现,自信对一个人来说是多么的重要,而自信毫无疑问是不断练习获得的。 practice makes perfact 一:异常 这是一个数学运算的异常,除数不能为0.public class ExceptionDemo { public static void main(String[] args) { System.out.println("start"原创 2017-05-09 12:22:29 · 376 阅读 · 0 评论 -
多线程(2)
一:线程中的一些方法(线程中存在的现象) A.线程加入 public final void join() 等待该线程中止,其他线程才能继续抢着执行 。MyThread.javapackage com.study_01;public class MyThread extends Thread { @Override public void原创 2017-05-23 19:49:42 · 202 阅读 · 0 评论 -
反射+类加载器
1:类加载器(了解) (1)什么是类的加载 当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。 一个类在加载过程中的三部曲: 1.加载 就是指将class文件读入内存,并为之创建一个Class对象. 任何类被使用时系统都会建立一个Class对象。 2.连接 验证 是原创 2017-05-24 16:41:45 · 240 阅读 · 0 评论 -
多线程(1)
Practice make perfact! 1:什么是多线程? 线程是依赖于进程而存在的。 A:进程 正在运行的应用程序 B:线程 进程的执行路径,执行单元。 2:多线程的两种方案 请参照:多线程两种方式 继承Thread类(查看api简单介绍Thread类): 实现Runnable接口:原创 2017-05-16 15:10:21 · 307 阅读 · 0 评论 -
登录注册案例(IO实现)
1:需求分析: 我们要做一个用IO实现的一个小型登录注册页面,它存在三个选项,注册,登录,退出系统。 2:具体步骤: 在写这个案例的时候,我们需要注意不同的包的命名规则,做到见明知义。 A:创建一个com.edu.domain的包,并创建一个User类 B:创建一个com.edu.dao的包,并创建一个Userdao的一个类,里边存放的实现登陆注册方法的接口。 C:创建一个c原创 2017-05-16 17:37:41 · 616 阅读 · 0 评论 -
登录注册案例(集合实现)
案例分析: 我们要做一个小型登录注册页面,它存在三个选项,注册,登录,退出系统。 具体步骤: 在写这个案例的时候,我们需要注意不同的包的命名规则,做到见明知义。 A:创建一个com.edu.domain的包,并创建一个User类 B:创建一个com.edu.dao的包,并创建一个Userdao的一个类,里边存放的实现登陆注册方法的接口。 C:创建一个com.edu.dao.impl的包,原创 2017-05-11 15:23:41 · 629 阅读 · 1 评论 -
I/O流(2)
Practice make perfact! 1:LineNumberReader类的相关方法 public int getLineNumber():获取行号 public void setLineNumber(int lineNumber):设置起始行号 String readLine():读取一行 举例:读取文件,每次读取一行打印并且加上行号package com.edu_01;原创 2017-05-16 18:39:32 · 189 阅读 · 0 评论 -
网络编程
一:网络编程三要素+UDP协议讲解 1.1 1.网络通信介绍 2.tcp/ip 3.udp/ip 1.2 Socket通信 * 网络编程三要素: ip: 一个计算的标示(找到这个计算机) 端口: 应用程序都会对应一个端口,用来进行通信,有效端口:0~65535,其中0~1024系统使用或保留原创 2017-05-31 16:40:15 · 225 阅读 · 0 评论 -
JDBC(java连接数据库1)
1 JDBC入门 1.1 回顾 之前操作mysql数据库: 1)使用mysql客户端工具 2)使用客户端连接mysql服务器 3)发送sql语句到mysql服务器,执行 1.2 什么是JDBC?原创 2017-06-16 20:22:27 · 458 阅读 · 0 评论 -
jdbc(java连接数据库2)
1 JDBC进行批处理 1.1 为什么要用批处理? 之前:一次操作只能发送一条sql语句到数据库服务器,效率并不高! 如果要插入2000条记录,那么必须发送2000条sql语句。如果IO流的话,一次写出一个字节,显然效率效率并不高,所以可以使用缓存字节数组提高每次写出的效率。 现在:插入2000条记录,但现在使用sql缓存区,一次发送多条sql到数据库原创 2017-06-16 21:00:06 · 266 阅读 · 0 评论 -
JavaScript入门
1 Javascript入门 1.1 引入 html:负责网页结构 css: 负责网页美观 javascript:负责用户与浏览器交互。 1.2 javacript的来由 1994时,网景公司研发了livescript语言,领航者浏览器(把livescript语言植入到浏览器)原创 2017-06-28 17:37:29 · 258 阅读 · 0 评论 -
bom编程+事件编程+dom编程+正则表达式
一.BOM编程 什么是BOM编程?(将浏览器的各个部分封装成了不同的对象) BOM是(Broswer Object Model) 浏览器对象模型编程 1.window对象<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml原创 2017-06-30 15:16:51 · 665 阅读 · 0 评论 -
HTML入门
1 HTML入门 1.1 软件结构分类: C-S结构(Client - Server 客户端-服务器端) 典型应用: 飞秋、QQ 特点:原创 2017-06-14 22:19:01 · 273 阅读 · 0 评论 -
CSS入门
1 CSS入门 1.1 引入 html:负责网页的结构 css: 负责网页的美观(样式) 1.2 体验<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-tra原创 2017-06-28 12:52:46 · 236 阅读 · 0 评论 -
JSP(java sever pages)动态网页开发技术2
一:在myeclipse8.5环境中集成tomcat步骤 1: 2: 3: 4: 5.创建一个web项目: File–>new –>web project 6.打开index.jsp进行编辑7.部署web应用: 点击了add按钮之后,会弹出以下界面: 选择tomcat6.0之后,finish完成 8.启动tomcat服务器 9.以在浏览器中访原创 2017-07-27 15:46:11 · 557 阅读 · 0 评论 -
模拟斗地主洗牌和发牌(集合实现)
1:用ArrayList集合实现 案例分析: 我们现在要做的是模拟斗地主小游戏来进行洗牌和发牌。 具体步骤: A:首先,创建一个ArrayList集合来存储牌,将牌的花色和点数存储在俩个字符串数组中中,然后用for循环加强遍历将每张牌的花色点数及大王小王存储在集合中。 B:进行洗牌,调用collectionas的shuffle方法。 C:进行发牌,创建四个ArrayList集合,分别用来原创 2017-05-11 14:50:41 · 2177 阅读 · 0 评论