
Java
文章平均质量分 63
老罗-Mason
因为相信,所以看见
展开
-
消息队列之 RabbitMQ
原创 2018-10-16 11:53:23 · 202 阅读 · 0 评论 -
Java 多线程归纳
2/b46facca-178b-35aa-bf4c-3d6d83b4bd94.png[/img]Synchronized关键字在语法上有两种形式:作用于程序块和方法块同步需要一个参数来表明锁住的是哪个对象,这种方式使得任何一个方法都可以锁住任何一个对象,同步块最常用的参数就是this。Synchronized关键字不属于方法签名的一部分,所以当子类覆盖父类方法时,Synchronized修饰符不会被继承。因此接口中的方法不能被声明为Synchronized,同样地,构造函数不能被原创 2015-09-14 10:11:36 · 105 阅读 · 0 评论 -
HashSet的实现原理深入剖析
允许使用null元素。 [b]2.HashSet的实现:[/b] [b]对于HashSet而言,它是基于HashMap实现的,HashSet底层使用HashMap来保存所有元素,[/b]因此HashSet 的实现比较简单,相关HashSet的操作,基本上都是直接调用底层HashMap的相关方法来完成, HashSet的源代码如下:Java代码public class HashSet extends AbstractSet implements Se原创 2015-08-20 16:43:02 · 112 阅读 · 0 评论 -
HashMap的实现原理深入剖析
,特别是它不保证该顺序恒久不变。 [b]2.HashMap的数据结构:[/b] 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外。HashMap实际上是一个“链表散列”的数据结构,即[b]数组和链表的结合体[/b]。[img]http://dl2.iteye.com/upload/attachment/0111/1039/105ea051-a570-3f37-adad-cb原创 2015-08-20 16:37:58 · 82 阅读 · 0 评论 -
Java 面试题总结
es cannot be changed after they are created.[/b]2)public [b]final [/b]class StringBuilderextends Objectimplements Serializable, CharSequenceA [b]mutable [/b]sequence of characters. This class provides an API compatible with StringBuffer, but wi原创 2015-08-17 17:29:42 · 175 阅读 · 0 评论 -
JVM调优
原创 2015-02-06 14:15:41 · 82 阅读 · 0 评论 -
java中重写equals方法和hashCode方法
e; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } } public class Cat { /**Cat类中含有name和birthday两私有成员变量,且重写了equals方法和hashCode方法 * * @param name 和原创 2014-05-06 16:18:43 · 108 阅读 · 0 评论 -
JXPath使用实例
0094/8827/13165d0e-0663-3bd8-9854-56bcca4d3728.jpg[/img] 执行简单的JXPath 查询: 最简单的查询就是从对象树中查找一个对象,例如,要查找公司,用下面的代码: JXPathContext context = JXPathContext.newContext(company); Company c = (Company)context.getValue("."); 第一行原创 2014-03-14 11:10:53 · 286 阅读 · 0 评论 -
JXPath使用介绍
原创 2014-03-11 15:13:00 · 2260 阅读 · 0 评论 -
JAVA正则表达式:Pattern和Matcher
对字符串进行匹配工作的类库包。 它包括两个类:Pattern和Matcher 。 Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher: 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行字符串的匹配工作。 以下我们就分别来看看原创 2014-03-11 10:41:09 · 109 阅读 · 0 评论 -
JFreechar API 解释
原创 2014-01-22 15:52:14 · 125 阅读 · 0 评论 -
JFreeChart 解决中文乱码
问题。在此提供以下两种解决此问题的方法。[b]一、设置主题的样式(强烈推荐)[/b]在制图前,创建主题样式并制定样式中的字体,通过ChartFactory的setChartTheme()方法设置主题样式。//创建主题样式 StandardChartTheme standardChartTheme=new StandardChartTheme("CN"); //设置标题字体 standardChartTheme.setExtr原创 2014-01-22 15:32:57 · 178 阅读 · 0 评论 -
基于CXF Java 搭建Web Service
原创 2013-12-02 17:15:33 · 126 阅读 · 0 评论 -
JVM 垃圾回收原理
原创 2015-10-29 13:38:12 · 94 阅读 · 0 评论 -
Java 并发编程_ConcurrentHashMap
循环,导致 CPU 利用率接近 100%,所以在并发情况下不能使用 HashMap。效率低下的 HashTable。HashTable 容器使用 synchronized 来保证线程安全,但在线程竞争激烈的情况下 HashTable 的效率非常低下。因为当一个线程访问 HashTable 的同步方法时,其他线程访问 HashTable 的同步方法时,可能会进入阻塞或轮询状态。如线程 1 使用 put 进行添加元素,线程 2 不但不能使用 put 方法添加元素,并且也不能使用 get 方法来获取元素,原创 2015-11-10 11:30:37 · 113 阅读 · 0 评论 -
Java语言异常(Exception)
容:异常的基础知识异常特点异常误用如何正确地使用异常异常的实现原理[b]关于异常[/b]异常机制,是指程序不正常时的处理方式。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。异常的一般性语法为: try { // 有可能抛出异常的代码 } catch (Exception e) { // 异常处理 } final原创 2018-10-09 11:40:32 · 242 阅读 · 0 评论 -
安全攻击与防护策略
原创 2018-09-11 14:14:15 · 425 阅读 · 0 评论 -
Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS
想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。乐观锁:顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库提供的类似于write_condition机制,其实都是提供的乐观锁。在原创 2018-08-17 09:47:49 · 133 阅读 · 0 评论 -
Java 高性能编程注意事项
原创 2016-11-17 09:55:21 · 130 阅读 · 0 评论 -
Netty 解析
文件的读写,都通过调用内核提供的系统调用;内核给我们返回一个文件描述符file descriptor(fd)。描述符就是一个数字,指向内核中一个机构体Linux IO 复用模型:Linux 提供select/poll,进程通过将一个或多个fd传递给select或poll系统调用,阻塞在select,这样select/poll可以帮我们侦测许多fd是否就绪。但是select/poll是顺序扫描fd是否就绪,而且支持的fd数量有限,默认值2048。Linux 还提供了一个epol原创 2017-03-07 13:47:26 · 456 阅读 · 0 评论 -
Disruptor 介绍
原创 2016-07-04 15:53:17 · 299 阅读 · 0 评论 -
2016年Java 面试题总结
是整个数组。我的意思是,如果改变引用指向的数组,将会受到 volatile 的保护,但是如果多个线程同时改变数组的元素,volatile 标示符就不能起到之前的保护作用了。2)volatile 能使得一个非原子操作变成原子操作吗?一个典型的例子是在类中有一个 long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,原创 2016-01-18 13:34:36 · 1209 阅读 · 0 评论 -
java 内存模型
,所谓线程安全无非是要控制多个线程对某个资源的有序访问或修改。总结java的内存模型,要解决两个主要的问题:可见性和有序性。我们都知道计算机有高速缓存的存在,处理器并不是每次处理数据都是取内存的。JVM定义了自己的内存模型,屏蔽了底层平台内存管理细节,对于java开发人员,要清楚在jvm内存模型的基础上,如何解决多线程的可见性和有序性。 在并发编程中,需要处理两个关键问题:线程之间如何通信和线程之间如何同步通信是指线程之间以何种机制来交换信息。在命令式编程中,线程之间的通信机制有两种:共享内原创 2015-12-29 13:44:01 · 94 阅读 · 0 评论 -
JVM 深入理解
原创 2015-12-29 12:51:44 · 220 阅读 · 0 评论 -
Java 并发编程_Synchronized
原创 2015-12-16 12:42:57 · 91 阅读 · 0 评论 -
Java 并发编程_Volatile
在堆内存中,Volatile只作用于共享变量。内存屏障(Memory Barriers):是一组处理器指令,用于实现对内存操作的顺序限制。缓冲行(Cache line):缓存中可以分配的最小存储单位。处理器填写缓存线时会加载整个缓存线,需要使用多个主内存读周期。原子操作(Atomic operations):不可中断的一个或一系列操作缓存行填充(cache line fill):当处理器识别到从内存中读取操作数是可缓存的,处理器读取整个缓存行到适当的缓存(L1,L2,L3的或原创 2015-12-15 13:42:39 · 110 阅读 · 0 评论 -
Java 并发编程_ConcurrentLinkedQueue
原创 2015-12-15 13:32:09 · 113 阅读 · 0 评论 -
JAXB 注解
va对象与XML的相互转换,在JAXB中,将一个Java对象转换为XML的过程称之为Marshal,将XML转换为Java对象的过程称之为UnMarshal。我们可以通过在 Java 类中标注注解的方式将一个Java对象绑定到一段XML,也就是说,在Java类中标注一些注解,这些注解定义了如何将这个类转换为XML,怎么转换,以及一段XML如何被解析成这个类所定义的对象; 其实Marshal 和 UnMarshal的过程并不复杂,只需要从JAXBContext中获得Marshaller或Unma原创 2013-09-13 16:59:51 · 90 阅读 · 0 评论 -
Apache ActiveMQ 介绍
管理后台系统:http://localhost:8161/adminuser/password: admin/admin[b]二、运行附带的示例程序[/b]1、Queue消息示例:* 启动Queue消息消费者cd exampleant consumer* 启动Queue消息生产者cd exampleant producer简要说明:生产者(producer)发消息,消费者(consumer)接消息,发送/接收2000个消息后自原创 2013-08-22 15:18:34 · 143 阅读 · 0 评论 -
JTA 原理与实现
过本地资源接口JDBC实现事务管理;对于跨数据源(例如多个数据库,或者数据库与 JMS)的大型应用,则必须使用全局事务 JTA (Java Transaction API)。JTA 为 J2EE 平台提供了分布式事务服务,它隔离了事务与底层的资源,实现了透明的事务管理方式。在JDBC中怎样将多个SQL语句组合成一个事务呢?在JDBC的数据库操作中,一项事务是由一条或是多条表达式所组成的一个不可分割的工作单元。我们通过提交commit()或是回退rollback()来结束事务的操作。关于事务操作的原创 2013-07-22 14:51:25 · 314 阅读 · 0 评论 -
Java 二进制与字符串转换
mp = (java.lang.Integer.toHexString(b[n] & 0XFF)); if (stmp.length() == 1) hs = hs + "0" + stmp; else hs = hs + stmp; } return hs; } public static byte[] hex2byte(String str) { // 字符串转二进制 if (s原创 2013-03-19 13:56:29 · 933 阅读 · 0 评论 -
Java读写Oracle数据库blob
File(filename); String insertSQL = "insert into t_vedio(serial_number,information_number,vedio_information) values(?,?,empty_blob())"; String updateSQL = "select vedio_information from t_vedio where information_number=? for update原创 2013-03-13 13:03:43 · 190 阅读 · 0 评论 -
JAVA线程池的分析和使用
原创 2013-02-08 16:21:16 · 79 阅读 · 0 评论 -
Java 并发锁
原创 2013-02-08 15:53:23 · 80 阅读 · 0 评论 -
单实例Singleton设计模式深入浅出
原创 2013-01-24 11:16:58 · 82 阅读 · 0 评论 -
Eclipse内存不足修改
原创 2012-07-03 15:35:58 · 112 阅读 · 0 评论 -
Java JDBC开发指导
ection con = ds.getConnection();}RationaleUse Connection pool to get connection instead of DriverManager.getConeection .Since it is already having connections in pool, so it will take less time to get connection.02: Always use Prepared statement instead原创 2012-08-01 17:02:32 · 110 阅读 · 0 评论 -
Java File IO开发指导
:BufferedReader class is used to make low-level Reader classes like FileReader more efficient and easier to use. Compared to FileReaders, BufferedReaders read relatively chunks of data from a file at once, and keep this data in a buffer. When requested for原创 2012-08-01 17:03:34 · 96 阅读 · 0 评论 -
用java调用oracle存储过程和函数
( PARA1 IN VARCHAR2, PARA2 IN VARCHAR2)ASBEGIN INSERT INTO USER (I_ID,I_NAME ) VALUES (PARA1, PARA2 );END TESTA; 2,Java程序:package com.hyq.src;public class TestProcedureOne { public TestProcedureOne() { } public static vo原创 2012-05-18 15:04:12 · 113 阅读 · 0 评论 -
JAVA读XML:sax,dom,jdom,dom4j的比较以及选择
原创 2012-03-20 09:04:20 · 121 阅读 · 0 评论