JavaCore
文章平均质量分 73
javaSE,java核心知识点
_夜半钟声到客船
永远保持对技术的热情
展开
-
【面试】Java最新面试题资深开发-Java中的并发集合类
Java提供了许多并发集合类来处理多线程环境下的数据共享和同步。你能列举一些Java中常用的并发集合类,并简要说明它们的特点和使用场景吗?原创 2023-12-12 10:41:03 · 75 阅读 · 0 评论 -
作为Java初学者,如何快速学好Java?
作为Java初学者,如何快速学好Java?原创 2023-11-25 22:33:42 · 339 阅读 · 0 评论 -
学习提高:JVM垃圾收集器,垃圾回收算法,一个对象从创建到回收的过程。
每次 YGC 的时候,它们将存活的对象复制到未使用的那块空间,然后将当前正在使用的空间完全清除,交换两块空间的使用状态。当前大多商用虚拟机都采用这种分代收集算法,这个算法并没有新的内容,只是根据对象的存活的时间的长短,将内存分为了新生代和老年代,这样就可以针对不同的区域,采取对应的算法。-------------欢迎各位留言交流,如有不正确的地方,请予以指正。整理:让存活的对象,向内存的一端移动,然后直接清理掉没有用的内存。原创 2023-04-07 23:13:16 · 192 阅读 · 0 评论 -
知识积累:EasyExcel导出Excel带中文水印,中文乱码处理,JDK8 jwt.font中文乱码解决方案
知识积累:EasyExcel导出Excel带中文水印,中文乱码处理,JDK8 jwt.font中文乱码解决方案原创 2022-04-10 13:03:41 · 4558 阅读 · 8 评论 -
知识积累:JDK1.8的parallelStream使用问题,ThreadLocal失效解决
parallelStream是创建一个并行的Stream,而且他的并行操作是不具备线程传播性的,ThreadLocal失效。原创 2022-03-31 09:57:15 · 2788 阅读 · 0 评论 -
知识积累:SpringBoot 解决跨域问题的代码
SpringBoot 解决跨域问题的代码原创 2022-02-09 10:50:00 · 282 阅读 · 0 评论 -
Java内存模型,happen-before规则,JMM,volatile,有序性,可见性,原子性
Java内存模型Java线程之间的通信由Java内存模型(本文简称为JMM)控制,JMM决定一个线程对共享变量的写入何时对另一个线程可见。从抽象的角度来看,JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(main memory)中,每个线程都有一个私有的本地内存(local memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存,写缓冲区,寄存器以及其他的硬件和编译器优化。Java内存模型的抽象示意图如下:原创 2021-05-11 09:21:31 · 447 阅读 · 0 评论 -
深入理解SPI机制
一、什么是SPISPI ,全称为 Service Provider Interface,是一种服务发现机制。它通过在ClassPath路径下的META-INF/services文件夹查找文件,自动加载文件里所定义的类。这一机制为很多框架扩展提供了可能,比如在Dubbo、JDBC、SpringCloud中都使用到了SPI机制。我们先通过一个很简单的例子来看下它是怎么用的。代码示例:// 1、定义接口package com.liang.spi;/** * SPI接口 * @autho原创 2020-10-20 16:59:44 · 367 阅读 · 0 评论 -
Java的反射机制以及常用案例
反射是Java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个Java的类获取他所有的成员变量和方法并且显示出来。Java 的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C 或者 C++ 中就没有办法在程序中获得函数定义相关的信息。(来自Sun)要想解析一个类,必须先要获取到该类的字节码文件对象。而解析使用的就是Class类中的方法.所以先要获取到每一个字节码文件对应的Class原创 2020-09-09 15:17:46 · 198 阅读 · 0 评论 -
JDK的Unsafe类的一些用法总结
JDK的rt.jar包中的Unsafe类提供了硬件级别的原子性操作,Unsafe类中的方法都是native方法,它们使用JNI的方式访问本地C++ 实现库。错误代码示范:/********* * 直接下面这种方式会报错:原因是我们自己写的类是由AppClassLoader类加载器加载; * 而UnSafe类的getUnsafe()为了保证rt包的安全;Unsafe类可以直接操作内存; * 不让开发人员在正规渠道使用Unsafe类,而是在rt.jar包里面的核心类中使用Un原创 2020-06-12 10:59:21 · 903 阅读 · 0 评论 -
volatile实现细节-JVM层面+CPU层面
volatile可以保证多线程访问的变量的可见性以及禁止指令重排序。JVM层面的实现细节: StoreStoreBarrier LoadLoadBarrier volatile写操作 volatile读操作 StoreLoadBarrier LoadStoreBarrierCPU层面的实现细节:是采用lock 汇编指令操作,lock add dword ptr [rsp],0h为了更好的...原创 2020-06-10 21:35:39 · 828 阅读 · 2 评论 -
AQS源码研究
AQS:Abstract Queue Synchronize;抽象队列同步器。JDK里juc的Lock相关的api里有采用。核心:状态值state 和 等待队列。通过CAS(compare and swap)维护一个状态值state=0;当线程获取到锁时修改state 加1;可重入时state会一直加1;另外就是一个等待队列,存放其他来获取锁但是没有成功的线程。当拥有锁的线程执行完后,state置为0时,会唤醒等待队列的头结点来获取锁;如果是非公平锁,唤醒头结点线程的同时是允许其他新加入的线程原创 2020-06-05 16:15:06 · 232 阅读 · 0 评论 -
深入研究Java的synchronized以及四种锁状态的升级
在 Java 语言中,使用 Synchronized 是能够实现线程同步的,即加锁。并且实现的是悲观锁,在操作同步资源的时候直接先尝试加锁。加锁可以使一段代码(类实例,方法,代码块)在同一时间只有一个线程可以访问,在增加安全性的同时,牺牲掉的是程序的执行性能,所以为了在一定程度上减少获得锁和释放锁带来的性能消耗,在 jdk6 之后便引入了“偏向锁”和“轻量级锁”,所以总共有4种锁状态,级别由低到高依次为:无锁状态、偏向锁状态、轻量级锁状态、重量级锁状态。这几个状态会随着竞争情况逐渐升级。注意:锁可以原创 2020-06-04 10:03:55 · 391 阅读 · 0 评论 -
JSTL fmt:formatNumber日期、 数字、货币格式化
12.34 保留小数点后两位数 -- $12.00 -- $12.0 -- $1,234,567,890.00(那个货币的符号和当前web服务器的 local 设定有关) -- 123,456.79 -- 123,456.7 -- 123,456.70 -- 1,200%type 可以是currency、 number、 和percent。原创 2014-09-25 14:19:11 · 1093 阅读 · 0 评论 -
IE错误“Java(TM) 已被阻止,因为它已过时并且需要更新。”的解决方法
自今年9月10日,大量用户反馈,登陆到Oracle E-Business Suite后再点Form,IE 弹出“Java(TM)已被阻止,因为它已过时并且需要更新。 ”的错误,这个错误造成用户无法打开 Oracle EBS(其实不光是Oracle EBS,其他很多网站/系统都可能遇到类似的问题,这里只是以EBS为例来说了)。英文错误:Java(TM) was blocked转载 2015-03-25 17:03:43 · 3145 阅读 · 0 评论 -
android 再按一次后退键退出应用程序
Android使用点滴以下代码是日常开发遇到的一些技巧和问题,希望能对你有所帮助:1.实现再按一次退出提醒 /** * 实现再按一次退出提醒 */ private static Boolean isExit = false; private static Boolean hasTask = false; Timer tExit = new Timer原创 2015-02-27 17:26:38 · 986 阅读 · 0 评论 -
JAVA程序员之路
JAVA程序员之路- - 每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。学习Java的第一步是安装好JDK,写一个Hello World,? 其实JDK的学习没有那么简单,关转载 2013-03-12 13:36:00 · 2047 阅读 · 1 评论 -
基于新浪微博api的微博分享功能实现
首先应该拿到新浪微博开发的api,然后细读其中的一些文档规范,这样我们就能知道第三方应用要想实现分享内容到新浪微博平台,1.第三方应用需要在新浪微博的开放平台通过审核,拿到client_ID=*****client_SERCRET=*****配置到config.properties,信息如下:client_ID=*****client_SERCRET=*****re原创 2013-05-06 15:01:27 · 2607 阅读 · 2 评论 -
XML格式的报文返回给浏览器出现的问题
在使用Firefox、Chrome、IE测试xml文件时,遇到如下错误:Firefox浏览器提示的错误如下:XML解析错误:未组织好位置:http://localhost:8080/app/interfaceService/getCustomerGroup.service行:1,列:16535:------------------------------------原创 2013-05-06 15:46:15 · 15080 阅读 · 2 评论 -
远程通信的几种选择(RPC,Webservice,RMI,JMS的区别)
RPC(Remote Procedure Call Protocol)RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果。这个请求包括一个参数集和一个文本集,通常形成“classname.methodname”形式。优点是跨语言跨平台,C端、S端有更大的独立性,缺点是不支持对象,无法在编译器检查错误,只能在运行期检查。 Web ServiceWeb Ser转载 2014-09-28 09:14:40 · 812 阅读 · 0 评论 -
JMS入门学习
JMS (Java Message Service)是由SUN开发的一套API,它为开发者提供一套访问MOM(Message-Oriented Middleware:面向消息中间件)的标准方法。JMS 分为两种消息域PTP(点对点)和Pub/Sub(发布/订阅)。PTP消息被产生者放入到一个队列中,消费者则从小消息列队中取走消息,消息一担取走,消息就从队列中移除。Pub/Sub消息和PTP转载 2014-09-28 09:04:07 · 1059 阅读 · 0 评论 -
解决问题Some characters cannot be mapped using 'ISO-8859-1' character encoding
突然好好的jsp文件没法正常保存了, Save could not be completed. Reason: Some characters cannot be mapped using "ISO-8859-1" character encoding. Either change the encoding or remove the characters which are not s原创 2014-09-25 15:57:28 · 5252 阅读 · 1 评论 -
Springmvc中配置ehcache遇到错误Another CacheManager with same name
Caused by: net.sf.ehcache.CacheException: Another CacheManager with same name '' already exists in the same VM. Please provide unique names for each CacheManager in the config or do one of following:原创 2015-04-03 01:05:06 · 7295 阅读 · 0 评论 -
MyEclipse+Eclipse添加ibatis DTD文件实现xml的自动提示功能
如图一所示:配置sql-map-2.dtd的自动提示:附上自己写的代码: "http://ibatis.apache.org/dtd/sql-map-2.dtd">>>>>>>>>>>>>>>>>>>>>>------------------------------------------------------------------原创 2013-04-22 21:43:45 · 2328 阅读 · 0 评论 -
springcloud zuul网关和微服务层同时支持跨域解决方案
1.每个微服务支持跨域,import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotat...原创 2018-12-10 13:57:58 · 5020 阅读 · 0 评论 -
支付对接- 微信,支付宝
支付宝功能申请 登录支付宝账号,签约申请“移动快捷支付”功能,操作流程参考:支付宝帮助中心 获取PID,参考教程:获取合作者身份ID 生成密钥(公钥和私钥),并提交到支付宝,参考教程:生成RSA密钥上传公钥 微信支付功能申请 使用微信支付功能需到微信开放平台申请移动应用并开通支付功能微信APP支付接入商户服务中心 申请应用后可以获取...原创 2018-10-13 18:01:14 · 926 阅读 · 2 评论 -
spring-boot--使用thymeleaf模板
整体步骤:(1) 在pom.xml中引入thymeleaf;(2) 如何关闭thymeleaf缓存(3) 编写模板文件.htmlspring Boot默认就是使用thymeleaf模板引擎的转载 2017-05-08 16:04:26 · 845 阅读 · 0 评论 -
一个牛人给java初学者的建议
给初学者之一:浅谈java及应用学java不知不觉也已经三年了从不知java为何物到现在一个小小的j2ee项目经理虽说不上此道高手,大概也算有点斤两了吧每次上网,泡bbs逛论坛,没少去java相关的版面总体感觉初学者多,高手少,精通的更少 由于我国高等教育制度教材陈旧,加上java自身发展不过十年左右的时间还有一个很重要的原因就是java这门语言更适合商业应用所转载 2014-12-25 11:43:48 · 8382 阅读 · 0 评论 -
JVM内存调优,JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释
JVM内存区域划分Eden Space、Survivor Space、Tenured Gen,Perm Gen解释本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦:jvm区域总体分两类,heap区和非heap区。heap区又分:Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)。 非he原创 2016-05-12 13:39:28 · 1622 阅读 · 1 评论 -
springboot 整合web项目支持jsp
springboot项目 整合web项目支持jsp,完美解决jsp在springboot中的使用问题原创 2017-04-26 17:51:51 · 8173 阅读 · 1 评论 -
JAVA日期处理
转载于:点击打开链接package com.xxx.util;import java.text.ParseException;import java.util.Calendar;import java.util.Date;import java.text.SimpleDateFormat;public class CommonUtil { /**转载 2013-05-10 18:03:39 · 915 阅读 · 0 评论 -
Java 序列化Serializable详解(附详细例子)
Java 序列化Serializable详解(附详细例子)1、什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。2、什么情况下需要序列化 a)当你想把的内存中的对象保存到一个文件中或者数据库中时候; b)当你想用套接字在网络上传送对象的时候; c)当你想通过RMI传输对转载 2016-04-27 09:26:42 · 1394 阅读 · 0 评论 -
maven构建工程(springmvc/ssh/ssm)错误解决大全
maven(spring-hibernate)项目编译正常,部署启动时出现下面错误:nested exception is java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Indexgoogle、bd了好多办法,都没能解决,通过自己尝试判断,应该是包的冲突查看下persi原创 2015-04-30 14:07:40 · 1170 阅读 · 0 评论 -
多线程并发思考--文件加锁
多线程并发思考--文件加锁 在最近的工作中,经常要用到线程,就对线程相关知识稍微看了看,知道并发线程经常引起共享资源冲突,java以提供关键字synchronized的形式,为防止资源冲突提供了内置支持. 可是在工作中,我却碰到了这样的需求,定时抛出线程读写某文件的内容,由于相隔时间很短,我突然想到,会不会在第二次轮循开始对该文件进行读操作的时候,第一次抛出转载 2014-09-25 18:14:17 · 1489 阅读 · 0 评论 -
Jms两种message传输方式Topic和Queue的比较
/*** 转载请注明作者longdick http://longdick.iteye.com**/ Jms规范里的两种message传输方式Topic和Queue,两者的对比如下表(): TopicQueue概要Publish Subscribe messaging 发布订阅消息Point-转载 2014-09-25 19:02:37 · 970 阅读 · 0 评论 -
Log4j和common-logging的使用
Log4j和common-logging的使用Log4j和common-logging都是apache下的开源项目,他们的区别和简单使用请参考以下网址。http://touch.javaeye.com/blog/31632这是篇非常好的文章,我只想给他做一下补充。 补充一:大家可以看到不管是log4j还是commons-logging,在程序中使用时都需要以下步骤:1.原创 2014-09-25 19:01:13 · 1198 阅读 · 0 评论 -
Hibernate的查询query.list()返回的List<Object[]>,如何填充到POI的cell.setCellValue
偶然的机会,在使用hibernate查询数据库的数据,通过poi的方式导出到excel列表中。但是由于poi中的cell.setCellValue只能是boolean,double,string,Calendar等类型,无法将Object[]进行循环设置到cell里面。因此在网络上搜索了很多的办法,尝试了多种方法,自己也思考了很久!终于想到了一个好方法,既然cell.setCellVa原创 2013-09-04 17:15:11 · 4554 阅读 · 0 评论 -
java开发_使用BufferedImage生成验证码
前台处理返回的ByteArrayOutputStream //获取验证码写入ByteArrayOutputStream ByteArrayOutputStream os = new ByteArrayOutputStream(); try { String rand = this.getValidateImage(RANGE, 70, 21, 4,原创 2013-07-24 09:27:48 · 2060 阅读 · 0 评论 -
XMLHttpRequest如何获取客户端主机的网络IP地址
通过此方法将request传入,即可获取到远端登陆客户端主机的网络IP地址: public String getIpAddr(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown"原创 2013-09-06 11:51:08 · 2699 阅读 · 0 评论 -
Spring MVC视图解析器方式
在Spring MVC应用程序中,经常需要应用一些视图解析器策略来解析视图名称,三个视图解析器:InternalResourceViewResolver、ResourceBundleViewResolver和XmlViewResolver。<?xml version="1.0" encoding="UTF-8" ?><beans xmlns="http://原创 2013-08-26 22:05:48 · 1301 阅读 · 0 评论