Java基础
文章平均质量分 69
lgshendy
这个作者很懒,什么都没留下…
展开
-
Java RandomAccessFile用法
RandomAccessFileRandomAccessFile是用来访问那些保存数据记录的文件的,你就可以用seek( )方法来访问记录,并进行读写了。这些记录的大小不必相同;但是其大小和位置必须是可知的。但是该类仅限于操作文件。RandomAccessFile不属于InputStream和OutputStream类系的。实际上,除了实现DataInput和DataOutput接口之外(D...原创 2016-04-12 22:53:19 · 96 阅读 · 0 评论 -
Spring JDBC 多数据源管理
暂时还未发现线程安全的的问题 由于项目需要从已经运行的多个项目的数据库中取值,所以就出现了需要访问多个数据源的情况。Spring配置文件<!-- 属性文件读入 --> <bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPl...原创 2015-09-06 09:36:56 · 82 阅读 · 0 评论 -
web.xml 配置中classpath: 与classpath*:的区别
首先 classpath是指 WEB-INF文件夹下的classes目录解释classes含义:1.存放各种资源配置文件 eg.init.properties log4j.properties struts.xml2.存放模板文件 eg.actionerror.ftl3.存放class文件 对应的是项目开发时的src目录编译文件总结:这是一个定位资源的入口如果你知道开发过程中有这么一句话:惯例大于...原创 2015-08-22 23:48:24 · 65 阅读 · 0 评论 -
关于Java Serial Version UID的一些说明
转自:http://www.tuicool.com/articles/fmMnuu 在网络传输Java对象、将Java对象存储到文件、将Java对象以BLOB形式存储到数据库中时,需要对Java对象进行序列化及反序列化,标准模式是实现Serializable接口。 实现上述接口时,需要提供一个Serial Version UID,该UID用于标识类的版本。一个对象...原创 2015-08-22 15:57:57 · 241 阅读 · 0 评论 -
SimpleJdbcDaoSupport 已经在Spring 3.1中被deprecated掉了,在4.2中已经找不到了
好用的SimpleJdbcDaoSupport 及 SimpleJdbcTemplate,已经在3.1中被废弃原因是JdbcDaoSupport 或NamedParameterJdbcDaoSupport已经提供了其所有功能 请看源代码:[java] view plaincopy/** * Extension of {@link org.spring...原创 2015-08-08 00:18:58 · 425 阅读 · 0 评论 -
new 出的对象,无法调用@Autowired进入的spring bean
一不小心进了这个坑 记录一下 @Autowired来的spring 下的bean,则当前类必须也是spring bean才能调用它,不能用new Xxx()来获得对象,这种方式获得的对象无法调用其内的@autowired的bean1. 类1 加入spring poolpublic class PersonServiceImpl implements PersonSe...原创 2015-08-08 00:13:23 · 529 阅读 · 0 评论 -
RunTime.getRunTime().addShutdownHook用法
转载: http://blog.csdn.net/wgw335363240/archive/2010/08/31/5854402.aspx Runtime.getRuntime().addShutdownHook(shutdownHook); 这个方法的含义说明: 这个方法的意思就是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过方法addShutd...原创 2015-08-06 10:16:30 · 9719 阅读 · 0 评论 -
MYSQL驱动包升级到5.1.17版本之后会出现的问题:Generated keys not requested. You need to specify S...
今天部署项目的时候顺便把一些依赖用新版本的jar替换了,其他还好就是MYSQL的驱动出了问题。 原来用的是5.1.5的包,替换成5.1.17之后,如下生成主键的代码都会报错:[java] view plaincopyprint?ps = getConnection().prepareStatement(sql.toString()); .... ...原创 2015-08-01 16:45:50 · 115 阅读 · 0 评论 -
json、javaBean、xml互转的几种工具介绍
工作中经常要用到Json、JavaBean、Xml之间的相互转换,用到了很多种方式,这里做下总结,以供参考。 现在主流的转换工具有json-lib、jackson、fastjson等,我为大家一一做简单介绍,主要还是以代码形式贴出如何简单应用这些工具的,更多高级功能还需大家深入研究。 首先是json-lib,算是很早的转换工具了,用的人很多,说实在现在完全不适合了,缺点比较多,依...原创 2015-07-21 10:39:53 · 99 阅读 · 0 评论 -
关于java类加载器
java是 具有动态性,什么是动态性?有个最直观的例子:windows系统的即插即用,支持即插即用的设备可以在系统不重新启动的情况下既可以热把插使用。而 java的动态性表现在:我们的程序可以不用全盘的重新编译就能对程序某部分进行更新,C#也和java一样具有动态性,而且它的这种动态性表现更为直 观:直接生成windows的动态连接库文件——dll文件。而java生成的是class文件,cla...原创 2015-07-17 10:58:46 · 197 阅读 · 0 评论 -
关于java的class类
Class 类是在Java语言中 定义一个特定类的实现。一个类的定义包含成员变量,成员方法,还有这个类实现的接口,以及这个类的父类。Class类的对象用于表示当前运行的 Java 应用程序中的类和接口。 比如:每个数组均属于一个 Class 类对象,所有具有相同元素类型和维数的数组共享一个Class 对象。基本的 Java 类型(boolean, byte, char, short, int,...原创 2015-07-17 10:48:11 · 96 阅读 · 0 评论 -
JAVA并发编程学习笔记之CAS操作
转自 http://blog.csdn.net/aesop_wubo/article/details/7537960 CAS操作CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。我们常常做这样的操作[java] view plaincopyprint?if(a==b) { ...原创 2015-07-16 14:26:29 · 84 阅读 · 0 评论 -
几种任务调度的 Java 实现方法与比较
前言任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务。本文由浅入深介绍四种任务调度的 Java 实现:TimerScheduledExecutor开源工具包 Quartz开源工具包 JCronTab此外,为结合实现复杂的任务调度,本文还将介绍 Calendar 的一些使用方法。回页首Timer相信大家都已经非常熟悉 java.util....原创 2015-07-16 10:51:24 · 68 阅读 · 0 评论 -
Java线程池
介绍new Thread的弊端及Java四种线程池的使用,对Android同样适用。本文是基础篇,后面会分享下线程池一些高级功能。1、new Thread的弊端 执行一个异步任务你还只是如下new Thread吗?Javanew Thread(new Runnable() { @Override public void run() { // TODO ...原创 2015-07-16 10:35:37 · 142 阅读 · 0 评论 -
JVM 运行时数据区
翻译人员: 铁锚 翻译时间: 2013年11月11日 原文链接: JVM Run-Time Data Areas 参考地址: JVM运行时是什么样子? 这是阅读JVM规范时的笔记, 我画了一幅图来帮助自己加深理解:图1 JVM运行时数据区1. 单线程数据区(非共享) 从上图可以看出,每个线程都有自己独立的数据区,包括 PC(程序计数器),JVM(方法)栈,以及本地方法栈. 当创建新线...原创 2015-07-15 19:10:19 · 87 阅读 · 0 评论 -
ehCache+spring的简单使用
1、最近在做一个贷款项目是城市分站的 分为贷款前台和贷款机构后台,这个两个平台的二级域名不一样,一个前台是cityname.xx.com,cityname是会地区的不同而变化的,如在 北京就是bj.xx.com,机构后台是loan.xx.com,在机构登录的时候 ,如果把登录信息放在session,会有一个问题,就是当切换到前台的时候,由于域名改变了,此时session就会改变,之前sessi...原创 2015-09-06 09:42:33 · 115 阅读 · 0 评论 -
spring框架中多数据源创建加载并且实现动态切换的配置实例代码
转自:http://blog.csdn.net/yaerfeng/article/details/25025553 原创不易,转载请注明出处:spring框架中多数据源创建加载并且实现动态切换的配置实例代码代码下载地址:http://www.zuidaima.com/share/1774074130205696.htm在我们的项目中遇到这样一个问题:我们的项目需要连接多个数据库,...原创 2015-09-07 09:42:35 · 278 阅读 · 0 评论 -
再析在spring框架中解决多数据源的问题
转自:http://www.iteye.com/topic/91667 在前面我写了《如何在spring框架中解决多数据源的问题》,通过设计模式中的Decorator模式在spring框架中解决多数据源的问题,得到了许多网友的关注。在与网友探讨该问题的过程中,我发现我的方案并不完善,它只解决了一部分问题。总结多数据源的问题,其实它需要分为以下三种情况:各个数据源的数据结构不同、各个数...原创 2015-09-07 09:43:57 · 88 阅读 · 0 评论 -
java编译时生成调试信息选项详解(javac -g)
转自:http://www.iteye.com/topic/679030引子先说一下为什么写这一篇小文章,最近不少同事是在问一个问题,为什么Ant编译出的代码在日志里的出错异常栈看不到行号信息,每次如果在定位问题,都需要用eclipse重新将相应的jar包编译一下,再放到问题环境上重现一下,这样再看日志才可以。而且使用ant生成的包就算是远程调试也不可用,断点总是打不上。 一般...原创 2016-04-10 19:40:54 · 3794 阅读 · 0 评论 -
java -verbose命令
java -verbose[:class|gc|jni] 在输出设备上显示虚拟机运行信息。1.java -verbose:class在程序运行的时候究竟会有多少类被加载呢,一个简单程序会加载上百个类的!你可以用verbose:class来监视,在命令行输入java -verbose:class XXX (XXX为程序名)你会在控制台看到加载的类的情况。 verbose和verbos...原创 2016-04-10 19:26:41 · 194 阅读 · 0 评论 -
JVM锁实现探究1:synchronized初探
转自:http://www.majin163.com/2014/03/17/synchronized1/ 引言JAVA是一门极易入门的语言,这一点尤其表现在JAVA中对象锁的使用和多线程编程上。所谓对象锁,就是可以直接在JAVA的任意Object加 锁(synchronized),也可以在通过任意Object进行线程的阻塞(Object.wait())和唤醒(Object.notif...原创 2016-04-07 11:03:30 · 146 阅读 · 0 评论 -
JVM锁实现探究2:synchronized深探
转自:http://www.majin163.com/2014/03/17/synchronized2/这里我们来聊聊synchronized,以及wait(),notify()的实现原理。在深入介绍synchronized原理之前,先介绍两种不同的锁实现。阻塞锁我们平时说的锁都是通过阻塞线程来实现的:当出现锁竞争时,只有获得锁的线程能够继续执行,竞争失败的线程会由running...原创 2016-04-07 10:39:51 · 142 阅读 · 0 评论 -
java-String中的 intern()
1. 首先String不属于8种基本数据类型,String是一个对象。 因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。 2. new String()和new String(“”)都是申明一个新的空字符串,是空串不是null; 3. String str=”kvill”; String str=new String (“kvil...原创 2016-04-07 10:01:40 · 88 阅读 · 0 评论 -
java使用java.lang.management监视和管理 Java 虚拟机
软件包 java.lang.management提供管理接口,用于监视和管理 Java 虚拟机以及 Java 虚拟机在其上运行的操作系统。 接口摘要 ClassLoadingMXBean用于 Java 虚拟机的类加载系统的管理接口。CompilationMXBean用于 Java 虚拟机的编译系统的管理接口。GarbageCollectorMXBe...原创 2016-04-06 10:14:04 · 118 阅读 · 0 评论 -
JMX 提供的虚拟机检测 API
检测虚拟机当前的状态总是 Java 开放人员所关心的,也正是因为如此,出现了大量的 profiler 工具来检测当前的虚拟机状态。从 Java SE 5 之后,在 JDK 中,我们有了一些 Java 的虚拟机检测 API,即 java.lang.management包。 Management 包里面包括了许多 MXBean 的接口类和 LockInfo、MemoryUsage、MonitorI...原创 2016-04-06 10:06:19 · 143 阅读 · 0 评论 -
内存栅栏和内存对齐
Cache 一致性问题单核 Cache 中每个 Cache line 有2个标志:dirty 和 valid 标志,它们很好的描述了 Cache 和 Memory 之间的数据关系(数据是否有效,数据是否被修改),而在多核处理器中,多个核会共享一些数据。 只有 Core 0 访问变量 x,它的 Cache line 数据和内存中的数据一致,数据只存在于本 Cache 中。 3个 Core...原创 2016-04-05 18:07:35 · 149 阅读 · 0 评论 -
scala scala.io.Source.fromFile读取文件报错:MalformedInputException: Input length = 1
val file1 = scala.io.Source.fromFile("D:/IDEAWorkSpace/SparkJob/input.txt").mkString println(file1) val sss = scala.io.Source.fromFile(new java.io.File("D:/IDEAWorkSpace/SparkJob/inpu...原创 2016-04-01 10:09:57 · 2424 阅读 · 0 评论 -
Scala基本语法和概念
转自:http://blog.javachen.com/2015/04/20/basic-of-scala.html本文主要包括Scala的安装过程并理解Scala的基本语法和概念,包括表达式、变量、基本类型、函数、流程控制等相关内容。1. 安装从All Versions Scala下载所需版本Scala安装包,解压到指定目录之后,配置环境变量并使其生效。如果你使用Ma...原创 2016-03-29 11:00:24 · 608 阅读 · 0 评论 -
CORS(跨域资源共享)简介
CORS其实出现时间不短了,它在维基百科上的定义是:跨域资源共享(CORS )是一种网络浏览器的技术规范,它为Web服务器定义了一种方式,允许网页从不同的域访问其资源。而这种访问是被同源策略所禁止的。CORS系统定义了一种浏览器和服务器交互的方式来确定是否允许跨域请求。 它是一个妥协,有更大的灵活性,但比起简单地允许所有这些的要求来说更加安全。 而W3C的官方文档目前还是工作草...原创 2016-03-11 10:43:58 · 120 阅读 · 0 评论 -
AES加密时抛出java.security.InvalidKeyException: Illegal key
引入使用AES加密时,当密钥大于128时,代码会抛出java.security.InvalidKeyException: Illegal key size or default parametersIllegal key size or default parameters是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。文件位于${java_home}/...原创 2015-12-23 11:35:39 · 356 阅读 · 0 评论 -
java 线程的几种状态
转自:http://www.jiacheo.org/blog/338java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明:NEW 状态是指线程刚创建, 尚未启动RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是...原创 2015-09-07 10:26:00 · 103 阅读 · 0 评论 -
H2内存数据库死锁
最近H2内存数据库在用户访问量增加的时候总是出现死锁的问题 用jstack 查看信息如下: "pool-1-thread-13" prio=10 tid=0x00007fbb10012000 nid=0x3ba2 waiting for monitor entry [0x00007fbb49153000] java.lang.Thread.State: BLOCKED (on...原创 2015-09-07 10:18:56 · 735 阅读 · 1 评论 -
Java 对象在堆中的内存结构
翻译人员: 铁锚 翻译日期: 2013年11月8日 原文链接: What do Java objects look like in memory during run-time? 我们知道,函数每次被调用时,在内存中都有自己的活动记录(activation record),称为栈空间(stack). Java 的方法在调用时在 JVM 栈中为其分配一个栈帧(Java栈空间的一个片段),可以称之...原创 2015-07-15 19:07:25 · 174 阅读 · 0 评论 -
服务器监控狗 log4j FileWatchdog
用java写服务程序时经常会涉及到监控某些配置文件,当配置文件发生变化时实时重新加载该文件的内容到内存.实际上log4j里有现成的类FileWatchdog做了类似的工作.我们只需继承它,然后重写它的一些方法就可以了. /**使用log4j的监控狗 */ public class IPAccessFileWatchdog extends FileWatchdog { ...原创 2015-07-15 12:02:59 · 958 阅读 · 0 评论 -
NIO - FileChannel
转自:http://blog.csdn.net/java2000_wl/article/details/7614611 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; ...原创 2016-04-18 09:24:11 · 118 阅读 · 0 评论 -
NIO - Scatter/Gather
转自:http://blog.csdn.net/java2000_wl/article/details/7619395 1.Scatter 从一个Channel读取的信息分散到N个缓冲区中(Buufer).2.Gather 将N个Buffer里面内容按照顺序发送到一个Channel. Scatter/Gather功能是通道(Channel)提供的 并不是Buffe...原创 2016-04-18 09:23:04 · 107 阅读 · 0 评论 -
NIO - MappedByteBuffer
转自:http://blog.csdn.net/java2000_wl/article/details/7625021*MappedByteBuffer的创建 在FileChannel上调用map方法 返回一个MappedByteBuffer对象 [java] view plain copy print?public MappedByteBuffer ...原创 2016-04-18 09:22:45 · 91 阅读 · 0 评论 -
两种高性能I/O设计模式(Reactor/Proactor)的比较
转自:http://blog.jobbole.com/59676/ 综述这篇文章探讨并比较两种用于TCP服务器的高性能设计模式。 除了介绍现有的解决方案,还提出了一种更具伸缩性,只需要维护一份代码并且跨平台的解决方案(含代码示例),以及其在不同平台上的微调。 此文还比较了java、c#、c++对各自现有以及提到的解决方案的实现性能。系统I/O 可分为阻塞型, 非阻塞同步型以及非阻...原创 2016-04-15 14:18:51 · 113 阅读 · 0 评论 -
IO多路复用机制详解
服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要求socket被设置为NONBLOCK。注意这里所说的NIO并非Java的NIO(New IO)库。(3)IO多路复用(IO Multiplexing):即...原创 2016-04-15 11:50:46 · 151 阅读 · 0 评论 -
common-long包简介
http://www.open-open.com/bbs/view/1318864045468http://www.oschina.net/code/snippet_2765_14434这一组API的所有包名都以org.apache.commons.lang开头,共有如下8个包:org.apache.commons.langorg.apache.commons.lang.buil...原创 2015-05-22 09:19:21 · 336 阅读 · 0 评论