
java
文章平均质量分 94
Jacob_llz
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
什么是类变量(Class Variable),对象变量(Object Variable)
类变量就是指类里用static修饰的变量(static不能修饰方法变量). 对象变量是指一般的实例变量,也就是不用static修饰的变量。 以上说的变量都不是指方法变量。 访问类变量不需要初始化一个对象去访问,直接用“类名.变量名”的方式就可以访问,当然也可以用“实例对像.变量名原创 2011-07-11 14:03:17 · 1882 阅读 · 0 评论 -
几种线程池的实现算法分析
1. 前言 在阅读研究线程池的源码之前,一直感觉线程池是一个框架中最高深的技术。研究后才发现,线程池的实现是如此精巧。本文从技术角度分析了线程池的本质原理和组成,同时分析了JDK、Jetty6、Jetty8、Tomcat的源码实现,对于想了解线程池本质、更好的使用线程池或者定制实现自己的线程池的业务场景具有一定指导意义。 2. 使用线程池的意义 复用:类似WEB服务器等系统,长期来看内部转载 2014-09-19 10:20:56 · 774 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(上)
前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通过本人目前的经验和技术水平来思考下大型网站技术演进的过程。 大型网站定义 首先我们要思考一个问题,什么样的网站才是大型网站,从网站的技术指标角度考虑这个问题人们很容易犯一个毛病就是认为网站转载 2015-01-28 15:00:58 · 1607 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(中)
503错误 在上篇,我讲到某些网站在高并发下会报出503错误,503错误的含义是指网站服务端暂时无法提供服务,503还表达了网站服务端现在有问题,但是以后可能会提供正常的服务,对http协议熟悉的人都知道,5开头的响应码表达了服务端出现了问题,在我们开发测试时候最为常见的是500错误,500代表的含义是服务端程序出现了错误导致网站无法正常提供服务,500通常是服务端异常和错误所致,如果生产系统里转载 2015-01-28 15:02:00 · 764 阅读 · 0 评论 -
大型网站架构改进历程:存储的瓶颈(下)
存储的瓶颈写到现在就要进入到深水区了,如果我们所做的网站已经到了做数据库垂直拆分和水平拆分的阶段,那么此时我们所面临的技术难度的挑战也会大大增强。 这里我们先回顾下数据库的垂直拆分和水平拆分的定义: 垂直拆分:把一个数据库中不同业务单元的数据分到不同的数据库里。 水平拆分:是根据一定的规则把同一业务单元的数据拆分到多个数据库里。 垂直拆分是一个粗粒度的拆分数据,它主要是将原来在一个数据转载 2015-01-28 15:02:44 · 1379 阅读 · 0 评论 -
十大编程算法助程序员走上高手之路
算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。 快速排序使用分治法(Divide and conquer)策略来把一转载 2015-01-28 15:07:20 · 573 阅读 · 0 评论 -
JAVA数据库连接池实现
连接池的管理用了了享元模式,这里对连接池进行简单设计。 一、设计思路 1.连接池配置属性DBbean:里面存放可以配置的一些属性 2.连接池接口IConnectionPool:里面定义一些基本的获取连接的一些方法 3.接口实现ConnectionPool:对上面操作进行实现,并加入一些其他方法 4.连接池管理ConnectionPoolManage转载 2015-03-18 11:24:20 · 3221 阅读 · 1 评论 -
spring ioc原理(看完后大家可以自己写一个spring) .
最近,买了本Spring入门书:spring In Action 。大致浏览了下感觉还不错。就是入门了点。Manning的书还是不错的,我虽然不像哪些只看Manning书的人那样专注于Manning,但怀着崇敬的心情和激情通览了一遍。又一次接受了IOC 、DI、AOP等Spring核心概念。 先就IOC和DI谈一点我的看法。 IOC(DI):其实这个Spring架构核心的概念没有这么复杂,更转载 2015-03-18 16:21:07 · 1742 阅读 · 0 评论 -
jrockit的dump操作简介
jrockit的dump命令很简单,如果不熟悉。 先使用命令: jrcmd help 得到相关的options。然后使用选项hprofdump,使用此参数需要注意,应该使用这样的命令形式: jrcmd hprofdump filename=/home/hadoop/test.hprof 如图: 需要带上filename这个参数,不然不知道生成文件存放路径(另外需要绝对路径),我转载 2015-04-27 13:42:22 · 2269 阅读 · 0 评论 -
Java HashMap实现详解
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,H转载 2015-05-28 15:20:19 · 391 阅读 · 0 评论 -
线程池的原理及实现
1、线程池简介: 多线程技术主要解决处理器单元内多个线程执行的问题,它可以显著减少处理器单元的闲置时间,增加处理器单元的吞吐能力。 假设一个服务器完成一项任务所需时间为:T1 创建线程时间,T2 在线程中执行任务的时间,T3 销毁线程时间。 如果:T1 + T3 远大于 T2,则可以采用线程池,以提高服务器性能。 一个线程转载 2017-09-05 11:47:50 · 267 阅读 · 0 评论 -
Apache+Tomcat集群配置
本文Apache+Tomcat集群配置 基于最新的Apache和Tomcat,具体是2011年4月20日最新的Tomcat和Apache集群和负载均衡配置。 准备环境 Apache Apache是http服务器,我们利用其对Tomcat进行负载均衡。目前最新版本为2.2.17,下载地址为http://httpd.apache.org/download.cgi#apache22。如下图:转载 2014-05-03 22:02:23 · 575 阅读 · 0 评论 -
论接口与抽象类的真正区别
关于接口与抽象类的区别, 有着千篇一律的答案,我就不重复那些了, 什么可以实现多个接口,但只能继承一个类;抽象类中可以有方法是的实现,而接口没有, 等等...... 那都没有说错,但没有说的问题的关键. 为什么接口跟抽象类有那些不同, 这些不同的根源是什么? 根源是它们的真正含义,或说作用是截然不同的. 不同在哪里? 一言以辟之, "抽象类是为了把相同的东西提取出来,转载 2014-03-20 10:19:44 · 559 阅读 · 0 评论 -
1 JVM简介
JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“Hello World”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibernate等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时不时还来个内存溢出什么的,今天是交易系统报了StackOverflowError,明天转载 2012-04-17 23:46:59 · 472 阅读 · 0 评论 -
java中关于大数据类型的处理
在JAVA中double 类型的数据,不能直接相加,要不会丢失精度,需要用BigDecimal类封装,然后在进行加减. 最后显示的时候还需要用DecimalFormat 类进行格式化数据.Example. double newValue = Double.valueOf(vo.转载 2011-07-22 09:03:39 · 2310 阅读 · 0 评论 -
hibernate 调用oracle存储过程
一: session = base.getSession(); conn = session.connection(); CallableStatement call = conn.prepareCall("{Call get_user_info_pk(?)}原创 2011-09-12 11:43:39 · 1926 阅读 · 0 评论 -
jacob操作API
import com.jacob.activeX.ActiveXComponent; import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.Variant;原创 2011-08-19 15:27:05 · 18894 阅读 · 1 评论 -
JAVA获取文件的创建日期
在File的方法中,只能直接获取文件的最后修改日期,而且是以ms作为计量单位的,没有直接获取文件创建日期的方法,那是不是意味着JAVA不能获取文件的创建时间呢,答案是否定的,作为全球用使用人数最多的编程语言JAVA,完全可以获取我们所需要的任何信息,下面就是JAVA获取文件创建日原创 2011-08-23 15:02:29 · 10459 阅读 · 0 评论 -
报表iText 简介-Java PDF
一、前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText。通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了B/S系统的报表处理问题。 二、iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一原创 2011-11-18 12:10:02 · 2829 阅读 · 0 评论 -
纯java 的javascript引擎:rhino .
纯java 的javascript引擎:rhino 来源:http://www.javaeye.com/topic/87423 前段时间,在浏览javaeye论坛,看见有人征集如何在java中运行数学表达式。 结果方案五花八门: 1.jakarta commons JEXL. 2.Beanshell 3.Java Math Expression Parser jep转载 2011-11-21 16:13:23 · 995 阅读 · 0 评论 -
java javascript url编码和解码
java中URL 的编码和解码函数 java.net.URLEncoder.encode(String s)和java.net.URLDecoder.decode(String s); 在javascript 中URL 的编码和解码函数 escape(String s)和unescape(String s)原创 2011-12-06 22:44:16 · 620 阅读 · 0 评论 -
Struts 2中实现文件下载
在BlogJava上已经有一位作者阐述了文件上传的问题,地址是在Struts 2中实现文件上传 ,因此我就不再讨论那个话题了。我今天简单介绍一下Struts 2的文件下载问题。 我们的项目名为 struts2hello ,所使用的开发环境是MyEclipse 6,当然其实用哪个IDE都是一样的,只要把类库放进去就行了,文件下载不需要再加入任何额外的包。读者可以参考文档:http://bean转载 2012-02-26 21:27:27 · 581 阅读 · 0 评论 -
java面试题及答案
JAVA相关基础知识 1、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的转载 2012-04-16 14:56:45 · 444 阅读 · 0 评论 -
Java中非静态方法是否共用同一块内存?
将某 class 产生出一个 instance 之后,此 class 所有的 instance field 都会新增一份,那么所有的 instance method 是否也会新增一份?答案是不会,我们用field表示字段,用method表示方法,那么加上static区分后就 有四种: class field:有用static修饰的field class method:有用static修饰的m转载 2012-04-16 14:27:28 · 1682 阅读 · 2 评论 -
JVM 常量池理解
在本文描述它们的区别之前,先来了解一下JVM运行时数据区的内存模型。 《深入JAVA虚拟机》书中是这样描述的:JVM运行时数据区的内存模型由五部分组成: 【1】方法区 【2】堆 【3】JAVA栈 【4】PC寄存器 【5】本地方法栈 对于String s = "haha" ,它的虚拟机指令: 0: ldc #16; //String haha 2: asto转载 2012-04-17 23:48:13 · 1257 阅读 · 0 评论 -
技巧:ArrayList删除元素时, 从尾部开始遍历,可大大提升执行效率
一.描述: 1. 工作中,常常遇到这样的要求: 将列表里符合(或不符合)某条件的元素删除, 如: 有列表list = [ "a", "b", "c", "d" ], 删除其中的"a", "b", "c" 2. 关键在于遍历: 建议从尾部开始, 取代常规的从头部开始 3. 有人会说 使用 LinkedList 更合适 -- 此处只考虑 Ar转载 2018-03-11 16:27:05 · 1678 阅读 · 1 评论