Java
Mr.chen108
本人毕业于华南师范大学软件工程。希望可以多与大家进行学术上的交流!
展开
-
大根堆简单的插入和删除的实现
package com.chenrong.other;/** * @author ChenRong * @description: 实现简单的大根堆, 元素从大往小排序 * @date 2020/4/9 21:08 */public class BigHeap { // 记录堆内元素的个数,同时下一空元素下标 private Integer count ...原创 2020-04-09 22:15:22 · 1197 阅读 · 0 评论 -
Java中sleep()与wait()区别
学习时正好碰到这两个方法,就查阅相关资料,并通过程序实现,进行区别一下:1、每个对象都有一个锁来控制同步访问,Synchronized关键字可以和对象的锁交互,来实现同步方法或同步块。sleep()方法正在执行的线程主动让出CPU(然后CPU就可以去执行其他任务),在sleep指定时间后CPU再回到该线程继续往下执行(注意:sleep方法只让出了CPU,而并不会释放同步资源锁!!!);wait(...转载 2019-03-22 19:13:28 · 138 阅读 · 0 评论 -
Java集合框架图
大家在学习Java时,集合框架下有很多类,空闲时,我整理了一下,画了下面的2个图。黄色的代表接口,绿色的是抽象类,蓝色的具体类。下述所有的集合类,都实现了Iterator接口,这是一个用于遍历集合中元素的接口,主要包含hashNext(), next(), remove()三种方法。它的一个子接口LinkedIterator在它的基础上又添加了三种方法,分别是add(),...转载 2019-03-19 13:58:44 · 160 阅读 · 0 评论 -
概括地解释下线程的几种可用状态
参考答案:1.新建(new):新创建了一个线程对象。2.可运行(runnable):线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用权。3.运行(running):可运行状态(runnable)的线程获得了cpu 时间片(timeslice ),执行程序代码。4...转载 2019-03-22 17:33:32 · 292 阅读 · 0 评论 -
ajax 和 post 传多个参数值具体怎么写
ajaxdata:{id:id,name:name} 正确data:{id:“001”,name:“王俊凯”} 正确data:{“id”:id,“name”:name}post$.post(“Controller.do?finddosimetry”, {“id”: id, “name”:name}, function ® { });ajaxKaTeX parse...转载 2019-03-26 02:24:34 · 5386 阅读 · 0 评论 -
[js]js中获取
参考地址:http://hexudonghot.blog.163.com/blog/static/532043422012112264411234/在jsp中获取context path或者basePath 是很容易的。在javascript中也可以获取,并且有的时候也很有必要。<%String path = request.getContextPath();String baseP...转载 2019-03-25 20:15:20 · 233 阅读 · 0 评论 -
java 面向对象三大特性(封装,继承,多态)以及抽象、接口的介绍
转载请备注出自于:http://blog.csdn.net/qq_22118507/article/details/51422591封装:1.定义:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。2.封装的目的是:增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访...转载 2019-03-18 21:04:35 · 116 阅读 · 0 评论 -
这么说吧,java线程池的实现原理其实很简单
长期分享原创java文章,分享进阶架构师学习笔记及学习资料喜欢的可以点赞关注,共同学习,一起进步------------------------------------------------------------------------------好处 : 线程是稀缺资源,如果被无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,合理的使用线程池对线程进行统一分配、调优和监控,有以下好处:...转载 2019-03-22 03:25:13 · 120 阅读 · 0 评论 -
生产者与消费者模式(理解)
生产者/消费者模式:需要使用到同步,以及线程,属于多并发行列产生数据的模块,就形象地称为生产者;而处理数据的模块,就称为消费者。 单单抽象出生产者和消费者,还够不上是生产者/消费者模式。该模式还需要有一个缓冲区处于生产者和消费者之间,作为一个中介。生产者把数据放入缓冲区,而消费者从缓冲区取出数据。解耦:假设生产者和消费者分别是两个类。如果让生产者直接调用消费者的某个方法,那么生产...转载 2019-03-22 01:10:22 · 6684 阅读 · 0 评论 -
正则表达式 - 语法
java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编...转载 2019-03-18 09:15:58 · 89 阅读 · 0 评论 -
ConcurrentHashMap源码分析(1.8)
https://www.cnblogs.com/zerotomax/p/8687425.html个人感觉这篇文章对ConcurrentHashMap分析得比较好的。原创 2019-03-17 15:48:10 · 97 阅读 · 0 评论 -
GC判断哪些内存需要回收
GC的问题,主要分为:1、哪些内存需要回收?2、什么时候回收?3、如何回收?这里主要讲第一个问题。1、哪些内存需要回收?垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”,哪些已经“死去”(即不可能再被任何途径使用的对象)。(1)引用计数算法:给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是...转载 2019-03-21 00:03:13 · 774 阅读 · 0 评论 -
什么是Java虚拟机?为什么Java被称为平台无关的编程语言
一、什么是java虚拟机?java虚拟机是执行字节码文件(.class)的虚拟机进程。java源程序(.java)被编译器编译成字节码文件(.class)。然后字节码文件,将由java虚拟机,解释成机器码(不同平台的机器码不同)。利用机器码操作硬件和操作系统二、为什么java被称为平台无关的编程语言?因为不同的平台装有不同的JVM...转载 2019-03-20 22:56:01 · 615 阅读 · 0 评论 -
redis 热点数据 缓存
Redis 是什么 Redis 的五种基本类型 STRING LIST SET HASH ZSET 键的过期时间 发布与订阅 事务 持久化 快照持久化 AOF 持久化 复制 从服务器连接主服务器的过程 主从链 处理故障 分片 事件 事件类型 事件的调度与执行 Redis 与 Memcached...转载 2019-03-29 19:27:46 · 2683 阅读 · 0 评论 -
线程的几种状态
添加链接描述原创 2019-03-23 00:03:15 · 91 阅读 · 0 评论 -
MySql 数据表更新操作,增加列,删除列,修改字段类型,添加字段约束
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/pencil_x/article/details/80435935 </div> <div id="content_views"...转载 2019-03-27 01:24:15 · 1422 阅读 · 0 评论 -
Java反射调用方法
package com.lf.entity;import com.lf.annotation.SetProperty;import com.lf.annotation.SetTable;public class UserEntity { private String userName; private int userAge; private final...转载 2019-09-16 22:08:59 · 483 阅读 · 0 评论 -
Spring MVC中用@ResponseBody转json,字段为NULL或者为空不参加序列化方法汇总
Spring MVC中,在controller层使用@ResponseBody返回json时,我这里使用的是jackson。在使用@ResponseBody注解时,返回的对象中...转载 2019-05-31 20:30:39 · 7797 阅读 · 0 评论 -
eclipse ,正常模式可以运行,DEBUG模式被卡住的解决方案
今天做项目的时候,eclipse正常启动项目没问题,但是想要debug启动的时候,项目一直被卡住,无数次重启都解决不了。花了几个小时,终于找到问题所在,希望你们碰到类似的问题也可以如下方案解决:一直被卡住的原因是程序里面本身就被打了断点(不是笔者上的断点),虽然有点好奇项目里面为什么会有断点,但是确实无缘无故就存在断点了,所以运行的时候在断点的情况被卡住了。解决的方案:1、切断到DEBUG开...原创 2019-06-05 21:56:20 · 5444 阅读 · 0 评论 -
mysql语句报错 Data truncation: Truncated incorrect DOUBLE value
mysql 结合mybatis 写update语句用update,set,if标签写了如下一条语句:<update id="update" parameterType="User"> UPDATE user <set> <if test="user_nicheng != null and user_nichen...转载 2019-04-30 10:24:25 · 3540 阅读 · 0 评论 -
秒懂,Java 注解 (Annotation)你可以这样学
文章开头先引入一处图片。这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。Annotation 中文译过来就是注解、标释的意思,在 Java 中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来介绍专业名词。...转载 2019-05-05 09:14:16 · 158 阅读 · 0 评论 -
Centos 7 firewall 命令:
Centos 7 firewall 命令:查看已经开放的端口:firewall-cmd --list-ports开启端口firewall-cmd --zone=public --add-port=80/tcp --permanent命令含义:–zone #作用域–add-port=80/tcp #添加端口,格式为:端口/通讯协议–permanent #永久生效,没有此参数重启...转载 2019-04-19 21:44:20 · 102 阅读 · 0 评论 -
基于 JDK 的动态代理机制
基于 JDK 的动态代理机制 『动态代理』其实源于设计模式中的代理模式,而代理模式就是使用代理对象完成用户请求,屏蔽用户对真实对象的访问。举个最简单的例子,比如我们想要「FQ」访问国外网站,因为我们并没有墙掉所有国外的 IP,所以你可以将你的请求数据报发送到那些没有被屏蔽的国外主机上,然后你通过配置国外主机将请求转发到目的地并在得到响应报文后转发回我们国内主...转载 2019-04-16 16:50:56 · 149 阅读 · 0 评论 -
mybatis中的动态SQL
在实际开发中,数据库的查询很难一蹴而就,我们往往要根据各种不同的场景拼接出不同的SQL语句,这无疑是一项复杂的工作,我们在使用mybatis时,mybatis给我们提供了动态SQL,可以让我们根据具体的业务逻辑来拼接不同的SQL语句。OK,那么我们今天就来看看如何使用mybatis中的动态SQL。 mybatis中的动态SQL主要包含如下几种元素:if、choose、when、otherwise...转载 2019-04-02 20:55:32 · 131 阅读 · 0 评论 -
Jquery 添加Authorization认证
$.ajax({ type: "GET", url: "http://localhost:8080/books", beforeSend: function(xhr) { xhr.setRequestHeader("Authorization", "Bearer eyJhbGciOiJIUzI1NiJ9.eyJwcmluY2...转载 2019-03-29 01:58:06 · 2890 阅读 · 0 评论 -
Java并发笔记——单例与双重检测
单例模式可以使得一个类只有一个对象实例,能够减少频繁创建对象的时间和空间开销。单线程模式下一个典型的单例模式代码如下:① 1 class Singleton{ 2 private static Singleton singleton; 3 private Singleton(){} 4 5 ...转载 2019-03-28 08:43:21 · 88 阅读 · 0 评论 -
Servlet 中文乱码问题及解决方案剖析
一、常识了解 1.GBK包含GB2312,即如果通过GB2312编码后可以通过GBK解码,反之可能不成立;2.java.nio.charset.Charset.defaultCharset() 获得平台默认字符编码;3.getBytes() 是通过平台默认字符集进行编码; 二、中文乱码出现 在学习任何一门技术时,经常会有初学者...转载 2019-04-10 10:56:08 · 286 阅读 · 1 评论 -
mysql更改表名语句命令
rename table tablename1 to tablename2;原创 2019-03-27 01:29:45 · 493 阅读 · 0 评论 -
java-堆里面的分区:Eden,survival(from) to,老年代,各自的特点。
1.Eden区 Eden区位于Java堆的年轻代,是新对象分配内存的地方,由于堆是所有线程共享的,因此在堆上分配内存需要加锁。而Sun JDK为提升效率,会为每个新建的线程在Eden上分配一块独立的空间由该线程独享,这块空间称为TLAB(Thread Local Allocation Buffer)。在...转载 2019-03-20 21:41:12 · 1995 阅读 · 0 评论 -
使用@Valid注解规范用户请求的参数
一、业务场景对于一个用户的注册操作(Post请求),往往涉及到账号(username)、密码(password)的Post提交://用户发送POST请求创建新的用户@PostMappingpublic User create(@RequestBody User user){ /** 一些数据持久化操作,如:写入数据库 **/ //打印用户提交的信...转载 2019-03-16 16:23:06 · 548 阅读 · 0 评论 -
使用@Valid注解规范用户请求的参数
限制 说明 @Null 限制只能为null @NotNull 限制必须不为null @AssertFalse 限制必须为false @AssertTrue 限制必须为true @DecimalMax(value) 限制必须为一个不大于指定值的数字 @DecimalMin(value) 限制必须为一个不小于指定值...转载 2019-03-16 16:20:55 · 4492 阅读 · 0 评论 -
Java中的String,StringBuilder,StringBuffer三者的区别
最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。 这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速...转载 2019-01-28 18:27:32 · 67 阅读 · 0 评论 -
java 字节流与字符流的区别
转载地址:点击打开链接字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流...转载 2019-01-28 17:47:04 · 74 阅读 · 0 评论 -
java项目生成安装文件(工具为exe4j、Inno setup)
今天做的是将java项目生成可安装的exe文件,一并将jre也打包进去了,这样可以在没安装java虚拟机的电脑上安装使用该程序。下面介绍详细步骤。新建一个文件夹,最好和项目名相同,然后将生成的jar文件,exe文件以及一些小图标都放在文件夹中。一、将java项目打包;我用的是eclipse,选择file->export,进入一下界面:选择runnable jar file ,然后下一...转载 2018-12-31 09:52:47 · 281 阅读 · 0 评论 -
java项目导出为jar并使用exe4j打包成可运行exe程序
前言: 上一篇文章写道 java项目打包成jar编写启动文件在windows和Linux下运行 ,对于普通的java应用程序这种方式没有什么问题,but,最近突然想起来,这样好不容易写的程序,class源码不就相当于暴漏了吗,所以如果在Windows下直接打包成一个exe的运行程序就好了...转载 2018-12-30 12:09:55 · 268 阅读 · 0 评论 -
将带图片的Java工程用eclipse打包成jar,然后用exe4j将jar打包成exe,并附带jre库
一、自带图片的处理 A,调试路径,如果是"/bg.png",则放在工程根目录下,如果是"bg.png"则放在类的src路径里,和.java文件在一起。下图是放在根目录下:源代码部分: //调试时的路径,此时图片在工程根目录下,和bin、src、lib等目录并列 //ImageIcon icon = new Image...转载 2018-12-30 12:05:02 · 309 阅读 · 0 评论 -
hibernate入门--安装JBoos Tools、配置
简介作为hibernate入门的小白,摸索hibernate的配置以及简单的一对一映射遇到了太多的坑。在这里我想详细的记录一篇hibernate入门日记,总结一下自己所遇到的问题,给各位入门小伙伴一些借鉴,希望以后的小伙伴不要掉进相同的坑里面喔!hibernate版本的更新太快了,导致不同版本用相同的配置会遇到不同的问题。在这里我首先说明一下自己所用的eclipse、Jboos Tools、h...原创 2018-11-28 10:52:12 · 492 阅读 · 2 评论 -
Hibernate和Mybatis的区别
我是一名java开发人员,hibernate以及mybatis都有过学习,在java面试中也被提及问道过,在项目实践中也应用过,现在对hibernate和mybatis做一下对比,便于大家更好的理解和学习,使自己在做项目中更加得心应手。第一方面:开发速度的对比就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要...转载 2018-11-25 18:47:29 · 84 阅读 · 0 评论 -
java Unsafe类中compareAndSwap相关介绍
转载自: https://blog.csdn.net/sherld/article/details/42492259 最近在看jdk7中java.util.concurrent下面的源码中,发现许多类中使用了Unsafe类中的方法来保证并发的安全性,而java 7 api中并没有这个类的相关介绍,在网上查了许多资料,其中http://ife...转载 2018-11-18 11:39:21 · 238 阅读 · 0 评论 -
hash算法原理详解
转载自:http://blog.csdn.net/tanggao1314/article/details/51457585一.概念哈希表就是一种以 键-值(key-indexed) 存储数据的结构,我们只要输入待查找的值即key,即可查找到其对应的值。哈希的思路很简单,如果所有的键都是整数,那么就可以使用一个简单的无序数组来实现:将键作为索引,值即为其对应的值,这样就可以快速访问任意键的值...转载 2018-11-20 01:13:30 · 297 阅读 · 0 评论