Java
文章平均质量分 51
JamKong
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
线程池原理你知道多少?
程序员成长路上有着不同的阶段,只要你翻过了当时那个阶段,那么你将会有了不一样的收获。很多时候,我们在刚开始面对它们的时候,还看不清,看不透,云里雾里,让人觉得它们很高深。等我们正在的了解它们了之后就觉一切都是那么简单、自然。再努力一下,一切将会不一样!—— 鲁迅前言多线程开发就是这样的一座山,需要我们去克服。说到多线程,大部分新手(作者自己),在面试中谈到多线程就慌了,因为自己在实际工作中真的很少碰到,而且我们多数时候都是在做传统的单体项目开发,说真的,很少会碰到用到多线程的,用都.原创 2020-05-16 14:03:50 · 466 阅读 · 1 评论 -
一分钟扫盲:Java虚拟机运行时数据区
Java虚拟机所管理的内存将会包括以下5个运行时数据区域: 方法区 堆 虚拟机栈 本地方法栈 程序计数器 线程私有:每个线程都会有自己独立的空间,随线程的生命周期而创建和销毁。线程共享:所有线程都能访问到的内存空间,随虚拟机或GC而创建和销毁。1. 程序计数器(Program Counter Register): 是什么:...原创 2020-04-06 22:41:28 · 254 阅读 · 0 评论 -
面试官:自己如何实现一个Java锁?
在Java中现有的锁有很多,比如:synchronize、ReentrantLock、ReadWriteLock、CountDownLatch、Semaphone等等。如果让我们自己实现一个锁得需要用到什么知识?实现起来难不难呢?今天就让我们一起来尝试下吧!Go~ 首先,我们先来思考下,锁的作用是什么?锁是解决什么问题?...原创 2020-04-06 22:35:26 · 1929 阅读 · 3 评论 -
数组知识点
1. 数组变量是一种引用类型的变量,数组变量并不是数组本身,它只是指向堆内存中的数组对象。 因此,可以改变一个数组变量所引用的数组,这样可以造成数组长度可变的假象。 2. 数组一定要进行初始化。(不要搅混数组变量跟数组对象!-->看第三条) 不过可以换一个方式来初始化数组,或者说,数组无需初始化。 就是,先初始化一个A数组,然后再把此数组赋值给另一个B数组变原创 2015-12-28 15:21:54 · 326 阅读 · 0 评论 -
final修饰符
1. 对一个final变量,不管它是类变量、实例变量,还是局部变量,只要定义改变量时使用了final修饰符修饰,并在定义该final类变量时指定了初始值,而且该初始值可以在编译时就被确定下来,那么这个final变量本质上已经不再是变量,而是相当于一个直接量。 2 final修饰符的一个重要用途就是定义“宏变量”。当定义final变量时就为该变量指定了初始值,而且该初始值可原创 2015-12-28 15:24:33 · 303 阅读 · 0 评论 -
重定向
1. 什么是重定向呢?重定向就是客户端给服务端一个请求,服务端找到客户端指定的AServlet,由于该AServlet并不能处理该请求,所以,给客户端相应一个信息头:“302,Location=Bservlet”,让客户端自动的再次发出请求,不过此时的请求地址却是BServlet。所以,重定向后的地址栏是,http://localhost:8080/BServlet。如下图:原创 2015-12-28 15:27:13 · 617 阅读 · 0 评论 -
ckeditor的详细配置(转)
CKEditor 3 JavaScript API Documentation : http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.config.htm 一、使用方法: 1、在页面中引入ckeditor核心文件ckeditor.js cript" src="ckeditor/ckeditor.js"> 2、在使用编辑转载 2015-12-28 15:45:54 · 344 阅读 · 0 评论 -
内存分析
1. 栈与堆:生存空间 1.1 在java中,程序员会在乎内存中的两种区域:对象的生存空间堆(heap)和方法调用及变量的生存空间(stack)。 1.2 我们知道所有的对象都存活于可垃圾回收的堆上,但是我么还没看过变量的生存空间。而变量存在于哪一个空间要看它是哪一种变量而定。 这里说的“哪一种”不是它的类型,而是实例变量或局部变量。后者这种区域变量原创 2015-12-28 14:54:43 · 484 阅读 · 0 评论 -
对于session序列化跟session的钝化与活化的粗浅理解
1. API对序列化的解释:类通过实现 java.io.Serializable 接口以启用其序列化功能。未实现此接口的类将无法使其任何状态序列化或反序列化。可序列化类的所有子类型本身都是可序列化的。序列化接口没有方法或字段,仅用于标识可序列化的语义。2. session的序列化就是当服务器关闭的时候,服务器会把session保存到硬盘中。以sessionID命名,以“.session”作为扩原创 2015-12-28 14:46:38 · 2688 阅读 · 1 评论 -
关于 Gson 的序列化与反序列化分别进行重命名
很多情况下,Json的序列化与反序列化,需要分别对应不同的字段名称,比如说:序列化的时候要求:{user_name:"xxx"} 而反序列化的时候需要 {userName:"xxx"}那么Gson该如何实现? @SerializedName注解(只能放在属性级别,不能放到getter /setter)该注解有两个属性,一个value、一个alternate(备用的意思)。...原创 2018-08-13 19:08:28 · 8288 阅读 · 2 评论 -
如何使用反射技术获取泛型类的真实类型?
例如: 假设此时有一个User类,那么要获取该User类的真实类型的话,可以直接使用类名+".class"获取: ”User.class“或者,通过User类的实例 user.getClass() 来获取;上面两个例子是已经确定该类的类型是User类型了,所以,才可以使用上面的方法。而泛型类因为还不能确定是什么类型,所以没办法使用上面的两个方法(实例.getClass(),类名.class);如果原创 2015-12-28 16:02:35 · 610 阅读 · 0 评论 -
论坛中不同类型的贴的排序问题(涉及数据库的:CASE... END)
在论坛中,会有不同类型的帖子,比如说:普通贴、精华帖、置顶帖;论坛的这些贴子会根据不同的类型进行排序,当然不仅仅只是看帖子类型,还有贴子的动态情况来进行排序。在这里演示一下简单的帖子排序,我们只关注帖子的最新动态时间和帖子类型进行排序。其中最新动态的时间是这样确定的:如果刚创建的新帖,那么该帖子的最新动态时间就为该帖子的创建时间;如果有最新的回复,那么最新的动态时间就为最新回复的时间;原创 2015-12-28 16:27:10 · 941 阅读 · 0 评论 -
Java集合 Json集合之间的转换
<!--/*阴影跟圆角*/.radiusAndShadow{ border: 1px solid #4E4E4E; -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; /*border原创 2015-12-28 17:21:54 · 695 阅读 · 0 评论 -
Java对象 json之间的转换(json-lib)
<!--/*阴影跟圆角*/.radiusAndShadow{ border: 1px solid #4E4E4E; -moz-border-radius: 5px; -khtml-border-radius: 5px; -webkit-border-radius: 5px; border-radius: 5px; border:原创 2015-12-28 17:18:23 · 403 阅读 · 0 评论 -
request.getRequestDispatcher()的两个方法forward()/include()!!!
RequestDispatcher rd = request.getRequestDispatcher("/MyServlet");请求转发: rd.forward( request , response );请求包含: rd.include( request , response );有时一个请求需要多个Servlet协作才能完成,所以需要在一个Servlet跳到另一个Servlet!>一个请求原创 2015-12-28 17:10:28 · 2041 阅读 · 0 评论 -
JComboBox添加item的赋值类型问题!不一致的话会导致不能更改jcombobox的选择值
在用swing做页面的时候,往往需要设置字体样式,那么,如何用一种方法设置字体之后,在后面的其他页面就不需要再次设置字体了呢?下面这个方法就可以解决了:JComboBox在对它进行添加子项的时候,特别要注意jcomboBox.addItem(Object object);括号里面的值!!如果给它赋了数值,那么以后就要用数值进行设置改变等操作。比如说: // 声明一个原创 2015-12-28 17:05:12 · 1084 阅读 · 0 评论 -
关于String的两种赋值方式
String的两种赋值是不同的,String str1=“hello”,指向堆内存中的"hello",而String str2=new String("hello"),因为new开辟的新的堆内存,所以二者地址不同,在用==时,显示的是false。例一: String str1=“Hello”; String str2=“Hello”;原创 2015-12-28 17:02:33 · 2797 阅读 · 0 评论 -
Java算法题:求素数
题目:判断101-200之间有多少个素数,并输出所有素数。思路:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。具体代码: 1 public Vector exp(int first, int end) { 2 Vector v = new Vector(); 3 boolean原创 2015-12-28 16:59:52 · 472 阅读 · 0 评论 -
Java算法题:兔子问题
题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?解题思路: 1 public int exp(int month){ 2 if(month == 1 || month == 2){ 3 return 1; 4原创 2015-12-28 16:57:15 · 486 阅读 · 0 评论 -
JDBC的复习
前言:因为经常使用框架,现在反而忘了怎么使用JDBC了,所以赶紧复习起来~~1. 快速简单的使用JDBC ( 以mysql为例 )①. 获取驱动:Class.forName("com.mysql.jdbc.Driver");②. 获取连接:java.sql.Connection con = DriverManager.getConnection("jdbc:mysql://local原创 2015-12-28 16:54:35 · 352 阅读 · 0 评论 -
JDBCUtils工具类
JdbcUtils.java 1 import java.sql.Connection; 2 import java.sql.SQLException; 3 4 import javax.sql.DataSource; 5 6 import com.mchange.v2.c3p0.ComboPooledDataSource; 7 /** 8 * 依赖:原创 2015-12-28 16:51:54 · 1072 阅读 · 0 评论 -
装饰者模式对HttpServletRequest进行增强
1 package cn.web.servlet; 2 3 import java.io.UnsupportedEncodingException; 4 5 import javax.servlet.http.HttpServletRequest; 6 import javax.servlet.http.HttpServletRequestWrapper; 7 /**原创 2015-12-28 16:48:30 · 888 阅读 · 0 评论 -
eclipse进行Debug的时候,发出“java breakpoint unable to install breakpoint”错误
错误情况图:问题的解决方法:直接点击忽略掉:Don't tell me again来自网上的答案~~I had the same error message in Eclipse 3.4.1, SUN JVM1.6.0_07 connected to Tomcat 6.0 (running in debug-mode on a different machine, Sun原创 2015-12-28 16:45:50 · 1299 阅读 · 0 评论 -
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
最近在学习使用maven的时候,在pom.xml文件中导入了slf4j的引用,当时的pom.xml文件内容是如下:project> dependencies> dependency> groupId>org.slf4jgroupId> artifactId>slf4j-simpleartifactId原创 2015-12-28 16:40:31 · 379 阅读 · 0 评论 -
关于RBAC(Role-Base Access Control)的理解
基于角色的访问控制(Role-Base Access Control)有两种正在实践中使用的RBAC访问控制方式:隐式(模糊)的方式和显示(明确)的方式。今天依旧有大量的软件应用是使用隐式的访问控制方式。显示的访问控制方式更适合于当前的软件应用。隐式的访问控制隐式的访问控制就是并没有给角色添加具体权限操作,只是给访问的用户添加了一个标识,告诉系统我是隶属于这个角色的,只要系统允许这原创 2015-12-28 16:37:51 · 797 阅读 · 0 评论 -
SLF4J的使用
关于slf4j的理解:我觉得slf4j相当于把log4、jdk、simple等日志技术都封装好了,把它们实现的格式都统一了,只要按着slf4j的格式去写日志,具体的日志技术你可以自己选择,只要你导入相应的日志技术的jar包。比如说:我现在要对一个项目使用jdk日志。那么我就需要对那个项目导入两个jar包:slf4j-api-1.6.1.jarslf4j-jdk14-1.6.1.ja原创 2015-12-28 16:35:11 · 478 阅读 · 0 评论 -
转换流的使用(InputStreamReader,OutputStreamWriter)
我们如何设置字节输入流、字节输出流的编码和解码格式?在字节输入流(InputStream)、字节输出流(OutputStream)中,并没有提供设置编码和解码格式的方法。InputStream的API文档如下:因为字节输入输出流并没有提供相应的方法,让我们对编码和解码格式进行设置。那么我们就要使用转换流,来对字节流的编码进行设置。何为转换流?通过API可得知,转原创 2015-12-28 16:32:30 · 439 阅读 · 0 评论
分享