早期同步容器问题Java库本身就有多种线程安全的容器和同步工具,其中同步容器包括两部分:一个是Vector和Hashtable。另外还有JDK1.2中加入的同步包装类,这些类都是由Collections.synchronizedXXX工厂方法。同步容器都是线程安全的,但是对于复合操作,还有些缺点:① 迭代:在查觉到容器在迭代开始以后被修改,会抛出一个未检查异常ConcurrentModificat
确认提升性能重要方式首先,你需要知道需要修复什么,然后再开始修复它。同样的规则也适用于这里。例如,如果您的应用程序通过网络接收数据存储。您应该关注网络的数据传输和数据存储在磁盘上,可能是一个RDBMS。 然后分离出它们,要做到这一点你的架构必须松耦合,比如引入异步等等。关于
bom头的问题JAXB将xml文件转化为java对象时出现了问题,用ue编写修改的xml文件加入了bom头,导致解析出现问题。但log4j解析带bom头的xml文件就不会有问题。什么是bom头?在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码。现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8
JaxbContext生成xml文件或java类对象转化注解 JAXB提供了一个快速便捷的方式将Java对象与XML进行转换。在JAX-WS(Java的WebService规范之一)中,JDK1.6 自带的版本JAX-WS2.1,其底层支持就是JAXB。 JAXB 可以实现Java对象与XML的相互转换,在JAXB中,将一个Java对象转换为XML的
JAXB能够使用Jackson对JAXB注解的支持实现(jackson-module-jaxb-annotations),既方便生成XML,也方便生成JSON,这样一来可以更好的标志可以转换为JSON对象的JAVA类。JAXB允许JAVA人员将JAVA类映射为XML表示方式,常用的注解包括:@XmlRootElement,@XmlElement等等。
数字九宫格九宫格就是3*3的方格。把1~9填入九个方格中。要求水平、竖直、对角线方向上,每三个数字相加和都是15.求9个数字如何摆放?这个题我们小学都玩过:最简单的,最笨的方法是一个一个的尝试;诀窍:1.从第一列中间方格开始;2.下一个数字应该“左上角”;3.如果重复,则放到右边方格。左出右入;上出下入诀窍不单单适用于3*3的九宫格,像5*5,7*7,11*11等都适用。数据结构分析:二维数组,利
狼追兔子一只兔子躲进了10个环形分布的洞的某一个中,狼在第一个洞没有找到兔子,就隔一个洞,到第三个洞去找,也没有找到,就隔两个洞,到第六个洞去找,以后每次多一个洞去找兔子......这样下去,如果一直找不到兔子,请问兔子可能在哪个洞中?狼找洞的顺序:第一次:1;第二次:3;第三次6;第四次:10;第五次:5......问题巧妙转换:兔子在哪个洞安全?《---等价---》狼都会去哪个洞找?狼找不到兔
使用 TDA 工具,看到大量 Java Thread State :1,线程状态为“waiting for monitor entry”:意味着它 在等待进入一个临界区 ,所以它在”Entry Set“队列中等待。此时线程状态一般都是 Blocked:java.lang.Thread.State: BLOCKED (on object monitor)2,线
猴子选大王 M只猴子要选大王,选举办法如下:所有猴子按1,2……n编号围成一圈,从第一号开始顺序报数1,2……m,凡是报m号的退出圈外,如此循环报数直到圈内只剩一只猴子时这只猴子就是大王。数据结构: 猴子链表,循环 猴子属性值:判断是否落选  
蜗牛爬墙一只蜗牛爬10米高的城墙,早上爬3米,晚上下落2米,问蜗牛多少天可以爬过那10米的城墙?第一天白天:3米第一天晚上:下落2米 第一天前进:1米第二天白天:1+3米第二天晚上:下落2米 第二天前进:2米......最后登上10米城墙数据结构分析:初始高度:high=0; &
八皇后问题 八皇后问题,是一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果
java在没有源码的情况下怎么修改和使用jar中的类方法?自己手上的源码和线上的jar代码不一致,在不了解具体情况的时候,不能轻易更新线上jar文件,但需要轻微的改动怎么办?1.新建一个java工程,将以前的jar作为一个第三方jar调用,新工程中想办法实现修改。2.如果不想新添加工程(原jar已经被使用并不能修改名称),可在原jar中修改或添加。第一种方法相信大家都熟悉,开发工作中都在使用,第二
java获得当前文件路径第一种:File f = new File(this.getClass().getResource("/").getPath());System.out.println(f);结果:C:\Documents%20and%20Settings\Administrator\workspace\projectName\bin获取当前类的所在工程路径;如果不加“/”File f =
一、java反射机制 JAVA反射机制是在运行状态中,对于任意一个类,都能够得到这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 用一句比较白的话来概括,反射就是让你可以通过名称来得到对象 ( 类,属性,方法 ) 的技术。例如我们可
Comparable & Comparator 都是用来实现集合中元素的比较、排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法。Comparator位于包java.util下,而Comparable位
“JDK1.5/Java5”的一个重要主题就是通过新增一些特性来简化开发。这些特性包括泛型,for-each循环,自动装包/拆包,枚举,可变参数, 静态导入,注解。使用这些特性有助于我们编写更加清晰,精悍,安全的代码。1.泛型(Generic)C++通过模板技术可以指定集合的元素类型,而Java在1.5之前一直没有相对应的功能。一个集合可以放任何类型的对象,相应地从集合里面拿对象的时候我们也不得不
每一个程序员都有一个自己的开发工具,使用得心应手,好的工具能做到事半功倍效果。但人与人不同,喜好不同,使用的工具也不同。就像侠客需要武器,十八般兵器,各有所长,每个侠客都有属于自己的兵器。下面介绍下IT界的兵器们:JDK (Java Development Kit)Java开发工具集 、Eclipse、MyEclipse、UltraEdit、Java
Java从诞生到现在,一路飙升,可以说红遍全球,红到发紫。随着Java的流行,促生了许多java框架:Spring、WebWork、Struts、HIbernate、JDiy、JFinal、Quartz、Velocity、IBATIS、Compiere ERP&CRMSpring Framework【Java开源J2EE框架】 &n
Java主要提供了14种服务:JDBC、EJB、Java RMI、Java IDL、JNDI、JMAPI、JMS、JTS、JMF、Annotation、JavaFX、JMX、JPA、JSP 1.JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口,作为数据源,可以为多种关系数据库提
今天无意间看到了有关“预计Java 9的新特性”,回想我们一般现在都还在用Java 6,Java 7还都在尝试,真是跟不上步伐啊。追求的是稳定,可是丢失了新的特性。 突发奇想,为何不总结下java的历程,从Java诞生开始到现在的Java8和预计的Java9,都发生了哪些改变,都添加了哪些新特性。资料需要
最新的科技一般都是先有英文的,所以英语有多重要可想而知。我的英文很烂,一直想学,从来都是说起来容易,想起来简单,做起来最难。只能强迫自己多看些英语方面的技术网站,技术英语两不误。学习 Java 最好的电子书(PDF)喜欢阅读的可以通过这些免费的 Java 电子进行自学。大多数在线的电子书都是更新的,完整的。覆盖了 Java 的大多数细节。Offici
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号