
Java
文章平均质量分 69
杭逸晨_ henry
互联网大厂8年工作经验,专注JAVA、分布式研发和架构设计、项目管理、运维等方向。欢迎沟通交流。
展开
-
java Exception(runtimeException )
一般面试中java Exception(runtimeException )是必会被问到的问题常见的异常列出四五种,是基本要求。更多的。。。。需要注意积累了 常见的几种如下: NullPointerException - 空指针引用异常ClassCastException - 类型强制转换异常。IllegalArgumentException - 传转载 2014-07-17 14:02:13 · 713 阅读 · 0 评论 -
java jar包冲突解决方法
jar包冲突几乎是每个java程序员都会遇到的问题,而且特别是大工程,jar包各种依赖,经常性发生包冲突。通常会报这样几个运行时异常:java.lang.NoSuchMehodErrorjava.lang.NoClassDefFoundError这类问题十有八九都是jar包冲突引起,要解决jar包冲突问题,我们先了解下导致这个冲突的原因。导致jar包冲突的原因1、mvn的传递依赖特性:mvn编译打包除了会引入直接申明的依赖,还会引入间接申明的依赖2、mvn的依赖仲裁规则: 1). 按照项目总原创 2015-03-03 00:21:50 · 21080 阅读 · 0 评论 -
序列化serialVersionUID的作用
在很多应用中,需要对某些对象进行序列化,让它们离开内存空间,入住物理硬盘,以便长期保存。比如最常见的是Web服务器中的Session对象,当有10万用户并发访问,就有可能出现10万个Session对象,内存可能吃不消,于是Web容器就会把一些seesion先序列化到硬盘中,等要用了,再把保存在硬盘中的对象还原到内存中,说白了,就是能将一个2进制文件变成内存中的对象。在JAVA中,要实现这种机制,只要实现Serializable接口就可以了,先看下面这个简单例子,serialVersionUID稍后引出。我们原创 2015-03-04 23:56:17 · 796 阅读 · 0 评论 -
Java 多线程同步--synchronized
在多线程编程环境下,对于共享资源(比如多线程共享的变量)的写操作时,不同线程之间假如没有相互同步,而是随机读取、更改变量回写到内存中,就会出现混乱和错误!因此必须要在多线程的操作方法上添加锁对象,当一个线程进入操作的时候,其它线程必须要等待,这样依次串行完成任务。synchronized关键字可以将对象或者方法标记为同步,以实现对对象和方法的互斥访问,可以用synchronized(对象) { … }定义同步代码块,或者在声明方法时将synchronized作为方法的修饰符。原创 2015-03-29 15:06:31 · 807 阅读 · 0 评论 -
java.lang.ThreadLocal类
深入研究java.lang.ThreadLocal类 一、概述 ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量(ThreadLocal)其实的功用非常简单,就是为每一个使用该变转载 2015-03-29 17:52:01 · 757 阅读 · 0 评论 -
java jdk查看源码
其实如果你安装了JDK的话,你就已经拥有了java api的源码。JDK安装目录下的src.zip文件就是java api的源码。比如:C:\Program Files\Java\jdk1.6.0_38\src.zip你只要解压它就可以看到java api的源码了。还是很方便吧。原创 2015-06-03 00:15:30 · 892 阅读 · 0 评论 -
URL中加入BASE64加密的字符串引起的问题(Illegal base64 character a)
BASE64 decode报错原创 2017-01-19 22:50:33 · 63925 阅读 · 3 评论 -
java启动参数和jar启动
java启动jvm参数,可以指定参数。jar包启动命令:java -jar ***.jar -Dspring.profiles.active=dev -verbose:class1.-Dspring.profiles.active=dev 这个可以在spring-boot启动中指定系统变量,多环境(测试、预发、线上配置)的区分2. 在排查jar包冲突时,可以指定启动的-verbose:class 打印出启动的应用实际加载类的路径,来排查来源。3. jvm堆设值: -Xmx3550m -Xms35原创 2017-03-15 00:26:22 · 41207 阅读 · 1 评论 -
Java小知识积累
在Java开发中的一些知识点记录下:1. 字符串格式化是我们经常会使用的,String.format() ,格式化控制 %d 包括了 byte,int,long;2. Java方法参数中没有默认值,而C++中有,原因主要是避免了Java中多函数重载的二义性,如果存在默认参数则可以不传参数的,这样编译器就不知道应该选择哪个重载方法,Java为了减少复杂性就不允许方法中存在默认参数值。原创 2017-06-27 23:41:42 · 474 阅读 · 0 评论 -
scheduleAtFixedRate和scheduleWithFixedDelay区别
Java中的定时任务ScheduledExecutorService Executors.newScheduledThreadPool1. scheduleAtFixedRate 表示以固定频率执行的任务,如果当前任务耗时较多,超过定时周期period,则当前任务结束后会立即执行。2. scheduleWithFixedDelay 表示以固定延时执行任务,延时是相对当前任务结束为起点计算开始时间。原创 2017-07-30 11:36:42 · 2357 阅读 · 0 评论 -
Calendar和Date的转化方法
java中日期类Calendar和Date是我们在应用开发中经常使用的,Calendar和Date的转化方法如下:原创 2015-02-12 21:49:25 · 1214 阅读 · 0 评论 -
Google Guava--localcache本地缓存实例
何为缓存?本地缓存类似于map,当给定一个key,首先查找缓存中是否已经有值了,如果有则直接返回数据;相反如果不存在这样的key,则将新的内容value值缓存起来,以便下一次来查询,可以快速返回。当然缓存不是说value值一直不变,会按照一定的失效策略来更新缓存中的数据。缓存的常用使用场景有:(1)在高并发的数据库访问时,为了抗住数据库并发连接压力,将数据缓存起来,当有请求过来,直接返回数据;(2)当应用综的数据,更新周期较长,而且每次都查数据库的情况下,可以采用周期更新数据,从而有效减少数据库无效原创 2015-02-12 21:08:08 · 10900 阅读 · 0 评论 -
java-HelloWorld-环境配置-常见问题解决
1.下载JavaSetup(java运行环境)和jdk(开发包),并且安装2.设置环境变量:JAVA_HOME C:\Program Files\Java\jdk1.7.0_21CLASSPATH ;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarPath %JAVA_HOME%\bin; 如果配置成功原创 2014-05-25 11:07:21 · 895 阅读 · 2 评论 -
(转)Quartz 在 Spring 中如何动态配置时间
在项目中有一个需求,需要灵活配置调度任务时间,并能自由启动或停止调度。 有关调度的实现我就第一就想到了Quartz这个开源调度组件,因为很多项目使用过,Spring结合Quartz静态配置调度任务时间,非常easy。比如:每天凌晨几点定时运行一个程序,这只要在工程中的spring配置文件中配置好spring整合quartz的几个属性就好。 Spring配置文件 引用转载 2014-06-30 00:08:02 · 602 阅读 · 0 评论 -
(转)logback 配置详解(一)
一:根节点包含的属性: scan:当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。scanPeriod:设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。debug:当此属性设置为true时,将打印出logback内部日志信转载 2014-06-30 00:00:25 · 629 阅读 · 0 评论 -
MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明
MessagePack, Protocol Buffers跟Thrift序列化框架原理和比较说明www.MyException.Cn 发布于:2014-04-09 21:52:36 浏览:0次0MessagePack, Protocol Buffers和Thrift序列化框架原理和比较说明 第1部分 messagepa转载 2014-08-01 14:02:44 · 1283 阅读 · 0 评论 -
Access restriction: The method createJPEGEncoder(OutputStream) from the type JPEGCodec is not access
Access restriction: The method createJPEGEncoder(OutputStream) from the type JPEGCodec is not accesseclipse的设置问题,它默认把这些受访问限制的API设成了ERROR,你只要把Windows-Preferences-Java-Complicer-Errors/Warnings原创 2014-07-30 16:05:12 · 988 阅读 · 0 评论 -
java jar包冲突
在开发测试时一切正常, 一旦部署到正式服务器上, 就会出现以下几类异常:1, java类找不到 java.lang.ClassNotFoundException2, 方法不存在 java.lang.NoSuchMethodError3, 字段不存在 java.lang.NoSuchFieldError4, 类错误 java.lang.LinkageError原创 2014-08-13 16:50:35 · 600 阅读 · 0 评论 -
Java中对日期的注意点
Java中对日期的处理需要用到Calendar类,其中有几个方法在使用时需要新手注意。1. 在获取月份时,Calendar.MONTH + 1 的原因Java中的月份遵循了罗马历中的规则:当时一年中的月份数量是不固定的,第一个月是JANUARY。而Java中Calendar.MONTH返回的数值其实是当前月距离第一个月有多少个月份的数值,JANUARY在Java中返回“0”,所以我们需转载 2014-09-25 11:55:20 · 765 阅读 · 0 评论 -
本地jar包依赖和运行包
本地jar包依赖和运行包原创 2014-10-07 21:18:20 · 2326 阅读 · 0 评论 -
Java中Map值得注意的坑!
Java中Map值得注意的坑!原创 2014-11-24 19:55:33 · 1422 阅读 · 0 评论 -
Java-synchronize和lock详解(转)
由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。需要明确的几个问题:synchronized关键字可以作为函数的修饰符,也可作为函数内的语句,也就是平时说的同步方法和同步语句块。如果 再细的分类,synchronized可作用于instance变量、object reference(对象引用)、static函数和class literals(类名称字面常量)身上。转载 2017-08-01 00:32:15 · 1964 阅读 · 0 评论