
java世界
文章平均质量分 74
商云
梦想紧握手中,不断前进!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
负载均衡与集群之apache+tomcat
看完了有一本书,就应该有所收获,有所总结,最近把《大型网站技术架构》一书给看完了,给人的印象实在深刻,再加上之前也搞过书本上讲的反向代理和负载均衡以及session独立存储和缓存,因此书本看起来还是挺通俗易懂的,而且作者李智慧给人的印象(书本)也挺深刻的,我从这本书中也学到了许多,了解的许多,但是理解还是比较抽象的,写出来才是真正的理解,因此准备写一系列的博客来介绍和加深理解大型网站技术架构。转载 2016-04-07 22:14:16 · 4257 阅读 · 0 评论 -
Java多线程-工具篇-BlockingQueue
Java多线程-工具篇-BlockingQueue转载链接地址:http://www.cnblogs.com/jackyuj/archive/2010/11/24/1886553.html前言: 在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快转载 2015-04-24 18:01:11 · 591 阅读 · 0 评论 -
Java 线程池的原理与实现
最近在学习线程池、内存控制等关于提高程序运行性能方面的编程技术,在网上看到有一哥们写得不错,故和大家一起分享。[分享]Java 线程池的原理与实现这几天主要是狂看源程序,在弥补了一些以前知识空白的同时,也学会了不少新的知识(比如 NIO),或者称为新技术吧。线程池就是其中之一,一提到线程,我们会想到以前《操作系统》的生产者与消费者,信号量,同步控制等等。一提到池,我们会原创 2015-04-24 17:59:21 · 717 阅读 · 0 评论 -
JAVA 多线程和并发基础面试问答
多线程和并发问题是 Java 技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java多线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)Java 多线程面试问题1.进程和线程之间有什么不同?一个进程是一个独立(self contained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执原创 2015-04-24 18:05:36 · 1277 阅读 · 0 评论 -
Java中堆内存和栈内存详解
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器转载 2015-04-24 17:59:46 · 538 阅读 · 0 评论 -
Java语言对对象引用的4种方式
对于大部分Java对象而言,程序里会有一个引用变量引用该对象,这是最常见的引用方式.除了这之外,在java.lang.ref包下面给我们提供了3个类:SoftReference、PhantomReference和WeakRerence,他们分别代表了系统对象的3种引用方式:软引用、弱引用、虚引用;下面我们就来看看java中4种对象的引用方式1.强引用(StrongReference)转载 2012-05-23 22:35:30 · 1118 阅读 · 0 评论 -
Java六大必须理解的问题
摘要: 对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列。内容均来自于优快云的经典老贴。问题一:我声 ...对于这个系列里的问题,每个学Java的人都应该搞懂。当然,如果只是学Java玩玩就无所谓了。如果你认为自己已经超越初学者了,却不很懂转载 2012-05-23 22:37:31 · 1308 阅读 · 1 评论 -
图解析SQL语句中JOIN操作
摘要: 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章通过 文氏图(Ve ... 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法 有很多in转载 2012-05-23 22:36:17 · 964 阅读 · 0 评论 -
Java流与文件操作
数据流的基本概念数据流分为输入流和输出流。输入流只能读不能写,而输出流只能写不能读。使用数据流的目的是使程序的输入输出操作独立于相关设备,增强程序的可移植性。字符流Reader类和Writer类字符输入流Reader类是所有面向字符的输入流的超类声明为java.io中的抽象类。Public abstract class Reader extends Object转载 2012-05-23 22:34:56 · 803 阅读 · 0 评论 -
Java项目经验——程序员成长的关键
转自优快云。Java就是用来做项目的!Java的主要应用领域就是企业级的项目开发!要想从事企业级的项目开发,你必须掌握如下要点:1、掌握项目开发的基本步骤2、具备极强的面向对象的分析与设计技巧3、掌握用例驱动、以架构为核心的主流开发方法没有人愿意自己一辈子就满足于掌握了一些代码实现的技巧,别人告诉你要实现什么,你就用代码堆砌来实现别人的要求!你必须学会从整个项目的角度转载 2012-05-27 22:39:11 · 975 阅读 · 0 评论 -
Java编程最差实践
原文地址:http://www.odi.ch/prog/design/newbies.php 每天在写Java程序, 其实里面有一些细节大家可能没怎么注意, 这不, 有人总结了一个我们编程中常见的问题. 虽然一般没有什么大问题, 但是最好别这样做. 另外这里提到的很多问题其实可以通过Findbugs(http://findbugs.sourceforge.net/ )来帮我们进行检查出来.转载 2012-02-07 21:25:23 · 733 阅读 · 0 评论 -
深入Java集合学习系列:HashMap的实现原理
1. HashMap概述: HashMap是基于哈希表的Map接口的非同步实现。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 2. HashMap的数据结构: 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本转载 2015-04-21 17:02:06 · 672 阅读 · 0 评论 -
高并发量网站解决方案
一个小型的网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,这样的网站对系统架构、性能的要求都很简单。随着互联网业务的不断丰富,网站相关的技术经过这些年的发展,已经细分到很细的方方面面,尤其对于大型网站来说,所采用的技术更是涉及面非常广,从硬件到软件、编程语言、数据库、WebServer、防火墙等各个领域都有了很高的要求,已经不是原来简单的ht转载 2015-10-07 21:35:29 · 774 阅读 · 0 评论 -
深入理解java虚拟机(八):java内存分析工具-MAT和OQL
以下内容翻译自MAT帮助文档。MAT下载地址 http://www.eclipse.org/mat/一、Class Histogram Class Histogram shows the classes found in the snapshot, the number of objects for each class, the heap memory consu转载 2016-04-07 22:11:10 · 4283 阅读 · 0 评论 -
深入理解java虚拟机(七):java垃圾收集分析总结
一、垃圾回收触发条件 1、Minor gc触发条件当新生代空间不足时会主动触发Minor gc,并且自动扩容(可通过控制使新生代直接处于最大内存空间,避免自动扩容和垃圾收集)。 2、Full gc触发条件和新生代一样,当老年代空间不足时会触发Full gc,并且自动扩容;另外当在代码中调用System.gc()时也会触发Full gc。 可通过参数-XX:+Di转载 2016-04-07 22:09:34 · 886 阅读 · 0 评论 -
深入理解java虚拟机(六):java垃圾收集分析实战(内存分配与回收策略)
试验环境jdk 1.6.0_37。 虚拟机参数-XX:PrintGCDetails让虚拟机在发生垃圾回收行为时打印内存回收日志,并在进程退出时候输出当前的内存各区域分配情况。 以下代码测试都将加上 -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 参数,即设置java堆大小限制为20M,新生代10M,转载 2016-04-07 22:09:07 · 843 阅读 · 1 评论 -
深入理解java虚拟机(五):hotspot垃圾收集算法实现
本文所讲的是sun hotspot虚拟机实现,主要讲解Serial,ParNew,Parallel Scavenge,Serial Old,CMS(Concurrent Marsk Sweep),Parallel Old,G1(garbage first)垃圾收集器。先看java堆内存结构,适用于非G1收集器外的垃圾收集器: 首先根据java对象的生存周期长短转载 2016-04-07 22:08:31 · 570 阅读 · 0 评论 -
深入理解java虚拟机(四):对象存活判定算法和垃圾收集算法
程序计数器、虚拟机栈、本地方法栈3个区域随线程生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊的执行这出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来是就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内不需要过多考虑回收问题,因为方法结束或者线程结束时,内存就跟着回收了。因此我们主要学习java堆和方法区的内存分配和转载 2016-04-07 22:07:52 · 598 阅读 · 0 评论 -
深入理解java虚拟机(三):String.intern()-字符串常量池
看源码: public native String intern(); Returns a canonical representation for the string object.A pool of strings, initially empty, is maintained privately by the class String.When the i转载 2016-04-07 22:07:09 · 1573 阅读 · 0 评论 -
深入理解java虚拟机(二):java内存溢出实战
按照java内存的结构,发生内存溢出的地方常在于堆、栈、方法区、直接内存。1、堆溢出堆溢出原因莫过于对象太多导致,看代码。[java] view plain copy print?package baby.oom; import java.util.ArrayList; import java.util.List;转载 2016-04-07 22:06:49 · 900 阅读 · 0 评论 -
深入理解java虚拟机(一):java内存区域(内存结构划分)
图一:java内存结构划分由上图可知,java内存主要分为6部分,分别是程序计数器,虚拟机栈,本地方法栈,堆,方法区和直接内存,下面将逐一详细描述。1、程序计数器线程私有,即每个线程都会有一个,线程之间互不影响,独立存储。代表着当前线程所执行字节码的行号指示器。2、虚拟机栈线程私有,它的生命周期和线程相同。描述的是java方法执行的内存模型:每个方法在执转载 2016-04-07 22:02:19 · 592 阅读 · 0 评论 -
java中重载与重写的区别
首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段。多个同名函数同时存在,具有不同的参数个数/类型。重载Overloading是一个类中多态性的一种表现。 (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时通过传递给它们的不转载 2016-04-06 22:04:53 · 478 阅读 · 0 评论 -
分布式相关技术及其比较
随着计算机和网络技术的快速发展,新技术层出不穷。就分布式计算而言,近年来就诞生了诸如集群计算、网格计算、云计算等新兴技术。虽然这些技术的本质是分布式技术,生存土壤都是计算机和网络,都是为了解决数据的计算、传输和存储等问题,但是他们的之间在服务对象、实用场景等方面存在着差别。本文在介绍这些技术后,对其中一些技术做出了比较。所有的资源来均来自互联网。1. 分布式转载 2015-10-09 19:27:29 · 4343 阅读 · 0 评论 -
Eclipse3.7默认字体修改-帮你找回Courser-New字体
Eclipse3.76月22日正式发布,代号是Indigo,初次体验,在Windows7下初始后化,发现界面变化不大,字体却面目全非,小得根本看不见,而且也看起来很不爽。Eclipse以前的默认字体一般是CourierNew字体,这种字体看着习惯。但当我试图修改回去时,发现字体列表里根本没有这种字体,郁闷了半天,终于在网上找到了解决方法。(iTeye(原JavaEye,因与Oracle发生原创 2012-01-15 19:14:21 · 954 阅读 · 0 评论 -
Flex Builder 3 on Eclipse 3.5不编译解决方案
当我在机器上安装了flexbuilder3和STS(SpringSource Tool Suite )2.3后,将flexbuilder以插件的方式加入到STS,编译源文件和样式文件会出现编译出错,一开始是以为是上次编译产生的垃圾文件产生的问 题,采用项目文件清除后再编译,问题还是在。ConfigurationProblem logging infojava.lang.IllegalArgumen原创 2011-06-24 12:59:00 · 2437 阅读 · 0 评论 -
Java 范型攻略篇
在已发布的Java1.4中在核心代码库中增加了许多新的API(如Loging,正则表达式,NIO)等,在最新发布的JDK1.5和即将发布的JDK1.6中也新增了许多API,其中比较有重大意义的就是Generics(范型)。 一.什么是Generics? Generics可以称之为参数类型(parameterized types),由编译器来验证从客户端将一种类型传送给某一对象的机制。原创 2008-12-12 17:24:00 · 727 阅读 · 0 评论 -
Java图形程序水纹倒映效果
效果图如下:package org.test;import java.awt.Color;import java.awt.Frame;import java.awt.Graphics;import java.awt.Image;import java.awt.MediaTracker;import java.awt.Panel;import java.awt.image.Buffered原创 2008-12-10 14:17:00 · 647 阅读 · 0 评论 -
线程池及其实现
进程,线程是现代操作系统两个比较重要的概念。正是由于它们的存在,使得程序和并发执行得了实现。通常,创建一个线程的代价远远小于创建一个进程,所以多线程是编写并发程序的首要选择。然而,即使有多线程,当线程数量太大时,不断的创建线程也会影响系统的性能,这时,我们可以创建线程池来达到重用线程的目的,从而尽可能有减小开消,从而大大提高系统性能,比如在网络爬虫heritrix中就使用了线程池。以原创 2008-12-11 15:45:00 · 890 阅读 · 0 评论 -
Java实现类MSN、QQ好友上线通知界面
相信大家都使用过MSN,QQ这样的即时聊天类软件,对于它们的好友上线提示功能并不陌生吧?从屏幕右下角弹出一个小界面,慢慢上升,最后消失。我们能不能在自已的程序中也做出相同的功能呢?能!笔者现用JAVA和eclipse的SWT用户界面组件实现这个功能。 什么是SWT呢? SWT原来是eclipse项目组为开发eclipse IDE所编写的图形界面API,运行时,其先判断本机是否有相同的界面元素原创 2008-12-10 14:47:00 · 1633 阅读 · 1 评论 -
09年2月编程语言排行榜:商业编程语言的王者之争
2009年2月Tiobe编程语言排行榜发布,前十位的排名没有太大变化,C语言在取得了08年年度编程语言后增势迅猛,相比去年同期增长了0.98%。COBOL于1960年正式发布,是一种面向数据处理的、面向文件的、面向过程(POL)的高2009年2月Tiobe编程语言排行榜发布,前十位的排名没有太大变化,C语言在取得了08年年度编程语言后增势迅猛,相比去年同转载 2009-02-23 01:19:00 · 682 阅读 · 0 评论 -
主流5类测试工具及工具举例
目前主流的测试工具主要有以下5类: 1.负载压力测试工具 这类测试工具的主要目的是度量应用系统的可扩展性和性能,是一种预测系统行为和性能 的自动化测试工具。在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所 发现问题对系统性能进行优化,确保应用的成功部署。负载压力测试工具能够对整个企业架构 进行测试,通过这些测试,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布原创 2008-12-08 19:11:00 · 2165 阅读 · 0 评论 -
Java串口与手机通信
众所周知,SMS(Short Messaging Service)即短消息业务,是由Etsi所制定的一个规范(GSM 03.40 和 GSM03.38)。当使用其7-bits编码时,可以发送最多160个字符;使用8-bit编码,最多可以发送140个字符,通常无法直接通过手机显示;还有用16-bit编码时,最多70个字符,被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。由于S原创 2008-12-10 14:10:00 · 1095 阅读 · 1 评论 -
通过SMSLib库实现Java程序发送短信
SMS(Short Messaging Service)即短消息业务,是由Etsi所制定的一个规范(GSM 03.40 和 GSM03.38)。当使用其7-bits编码时,可以发送最多160个字符;使用8-bit编码,最多可以发送140个字符,通常无法直接通过手机显 示;还有用16-bit编码时,最多70个字符,被用来显示Unicode(UCS2)文本信息,可以被大多数的手机所显示。目前程序中原创 2008-12-10 14:07:00 · 3108 阅读 · 0 评论 -
Java打印程序设计全攻略
Java打印程序设计全攻略 在我们的实际工作中,经常需要实现打印功能。但由于历史原因,Java提供的打印功能一直都比较弱。实际上最初的jdk根本不支持打印,直到jdk1.1才引入了很轻量的打印支持。所以,在以前用Java/Applet/JSP/Servlet设计的程序中,较复杂的打印都是通过调用ActiveX/OCX控件或者VB/VC程序来实现的,非常麻烦。实际上,SUN公司也一直致力于Java原创 2008-12-10 14:52:00 · 807 阅读 · 0 评论 -
Java Excel读写组件jxl使用
使用起来很简单,就不多说了,只把代码贴出来 package com.yinbo.satisfy.web.struts; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; impor原创 2008-12-31 23:50:00 · 1047 阅读 · 0 评论 -
java工具类-获取包下的所有类
package com.ergal.ezweb.utils;import java.io.File;import java.io.FileFilter;import java.io.IOException;import java.net.JarURLConnection;import java.net.URL;import java.net.URLDecoder;import java.util原创 2008-12-12 22:35:00 · 3637 阅读 · 1 评论 -
优秀Java程序员必须了解的GC工作原理
一个优秀的Java程序员必须了解GC的工作原理、如何优化GC的性能、如何与GC进行有限的交互,因为有一些应用程序对性能要求较高,例如嵌入式系统、实时系统等,只有全面提升内存的管理效率 ,才能提高整个应用程序的性能。本篇文章首先简单介绍GC的工作原理之后,然后再对GC的几个关键问题进行深入探讨,最后提出一些Java程序设计建议,从GC角度提高Java程序的性能。 GC的基本原理Ja原创 2008-12-12 17:05:00 · 765 阅读 · 0 评论 -
java实现中文转化为拼音与简称
package test;import java.io.UnsupportedEncodingException; import net.sourceforge.pinyin4j.PinyinHelper;/** */ /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @author javer QQ:84831原创 2009-11-09 22:52:00 · 2295 阅读 · 3 评论 -
删除文件和文件夹的类
删除文件和文件夹的类 /* 用来删除文件夹的类,如果文件夹存在那么就删除该文件夹以及文件夹下的所有文件和文件夹 如果是文件,那么就删除该文件 */ import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public cl原创 2009-03-25 13:43:00 · 1099 阅读 · 2 评论 -
导出数据库数据到Excel
做了一个利用POI导出数据库数据到Excel的例子,并把这个例子与大家一起分享,一起学习,共同进步!先简单介绍一下poi,poi是apache组织的一个开源项目,最新版为poi-3.0.1,要使用poi需要到apache网站下载poi-bin3.0.1.zip压缩包,并将poi-3.0.1.jar加入到项目的ClassPath中。 下面是完成这个实例的步骤:1、建立好一个web工转载 2009-03-08 00:05:00 · 2064 阅读 · 0 评论