
JAVA语言
文章平均质量分 81
Sachiel阳
欢迎邮件交流:chongyangxue@sohu-inc.com
展开
-
Java栈与堆
Java把内存划分成两种:一种是栈内存,一种是堆内存。 在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。 当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。 堆内存用来存放由new创建的对象和数组。转载 2013-05-24 16:08:49 · 448 阅读 · 0 评论 -
几种JAVA加密算法
1. MD5加密,常用于加密用户名密码,当用户验证时。 protected byte[] encrypt(byte[] obj) ...{ try ...{ MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(obj); return md5.digest(); } c转载 2013-03-12 09:53:29 · 721 阅读 · 0 评论 -
影响Java EE性能的十大问题
本文作者是一名有10多年经验的高级系统架构师,他的主要专业领域是Java EE、中间件和JVM技术。他在性能优化和提升方面也有很深刻的见解,下面他将和大家分享一下常见的10个影响Java EE性能问题。1.缺乏正确的容量规划容量规划是一个全面的和发展的过程标准,预测当前和未来的IT环境容量需求。制定合理的容量规划不仅会确保和跟踪当前IT生产能力和稳定性,同时也会确保新项目以最小的风转载 2012-11-04 23:50:55 · 545 阅读 · 0 评论 -
javaEE性能调优
摘要:我提倡使用最小化资源的方式做一次压力测试,排除大部分浅显的应用问题。最小资源的意思,即在pc环境,使用应用可以运行的最小资源状态下,进行压力测试和性能问题侦测的工作。 前面看到有人讲j2ee的性能调优,虽然这块不是自己的专长,但是猪养多了,也忍不住跳出来说几句。 虽然几乎每本讲性能调优的书籍开篇都会提,没必要的情况下就不要做调优,但是我个人还是认为,所有系转载 2012-10-18 14:13:26 · 705 阅读 · 0 评论 -
何为Java引用
String str="aa"; str有本身的内存,是一个变量,而对像"aa"也有它自己的内存空间. 这时候说str引用"aa"这个对像. String tt=null; 这里的tt也是一个引用变量,但是它没有引用具体的对像. String str="aa"; String tt=str; 这里str与tt都是一个引用变量(属于String类型的,转载 2011-10-28 20:18:10 · 556 阅读 · 0 评论 -
使用ThreadMXBean更精确地评估Thread占用时间
需要评估某个程序运行消耗的时间时,一般情况下在JAVA中使用System.currentTimeMillis()来记录当前的时间,运行后再次采集一次当前时间,将两者的差作为运行消耗的时间。但这个时间并不是十分的精确,因为在程序运行的过程中,可能发生系统进程切换等系统事件,这部分时间也被计算在这个消耗时间里。而Java 虚拟机实现可能提供了支持测量当前线程的 CPU 时间的功能。Thread转载 2014-01-13 14:54:53 · 7488 阅读 · 0 评论 -
你会做Web上的用户登录功能吗?
Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能。下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能。以下内容,转载时请保持原文一致,并请注明作者和出处。用户名和口令首先,我们先来说说用户名和口令的转载 2014-02-21 13:44:22 · 673 阅读 · 0 评论 -
由OpenSessionInView引出的List复制问题
public String toAuditUser(ModelMap map){List users = authService.getAuditUsers();List tmpUsers = new ArrayList(users);for(UserInfo user : tmpUsers){String provinceCode = user.getProvince();S原创 2014-07-25 23:56:30 · 595 阅读 · 0 评论 -
JVM调优总结 -Xms -Xmx -Xmn -Xss
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java -Xmx3550m -Xms355转载 2014-08-27 11:37:18 · 590 阅读 · 0 评论 -
Java堆和栈的区别 经典总结
内存分配策略 按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的. 静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间.这种分配策略要求程序代码中不允 许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求. 栈式存储分配也转载 2013-05-24 16:14:28 · 636 阅读 · 1 评论 -
过滤器和拦截器的比较及未登录用户权限限制的实现
需要实现的功能:判断用户是否已登录,未登录用户禁止访问任何页面或action,自动跳转到登录页面。过程:因为对过滤器和拦截器都不熟悉,开始两种方式都问题不断,后调试通过,贴在这里留作小结和备忘 过滤器filter实现配置:web.xml[xhtml] view plaincopyfilter> f转载 2013-02-25 17:40:41 · 801 阅读 · 0 评论 -
Java 默认修饰符 总结
1. 类(class)可见性修饰符: public—在所有类中可见,在其他包中可以用import导入。 缺省—就是没有修饰符,在同一个包中的类中可见,在其他包中不能用import导入。 修饰符:final—终态类,表示该类不能被继承 abstract—转载 2013-04-11 17:21:07 · 964 阅读 · 0 评论 -
Netty使用初步
1、简介 Java1.4提供了NIO使开发者可以使用Java编写高性能的服务端程序,但使用原生的NIO API就像Linux C中网络编程一样,还是需要做IO处理、协议处理等低层次工作。所以,就像C服务端程序大量使用libevent作为网络应用框架一样,Java社区也不断涌现出基于NIO的网络应用框架。在这其中,Jboss出品的Netty就是个中翘楚。Netty是个异步的事件驱动网络应用框架,转载 2013-03-11 15:39:09 · 1619 阅读 · 0 评论 -
protobuf在netty里面的应用举例
netty为protobuf提供了两个编码器(ProtobufEncoder,ProtobufVarint32LengthFieldPrepender),两个解码器(ProtobufVarint32FrameDecoder,ProtobufDecoder)[注]所谓的编码就是把应用程序使用的数据类型编码成在网络上传输的二进制字节流,反之同理。看一个netty官网上提供的一个使用protob转载 2013-03-11 15:55:47 · 13531 阅读 · 1 评论 -
java使用AES加密
package com.jetsum.util; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.secur转载 2013-01-09 14:53:32 · 808 阅读 · 0 评论 -
JAVAEE 常见性能问题解决手册(节选)
摘要:这篇文章,是PRO JAVA EE 5 Performance Management and Optimization 的一个章节,作者Steven Haines分享了他在调优企业级JAVA应用时所遇到的常见问题。是JAVAEE领域开发者很有效的故障检测手册。 概要这篇文章,是PRO JAVA EE 5 Performance Management and Optim转载 2012-12-27 12:52:28 · 2053 阅读 · 0 评论 -
Java垃圾回收器总结
判断对象是否被回收的算法:一、引用计数法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器都为0的对象就是不可能再被使用的。二、根搜索算法 在主流的商用程序语言中(Java和C#,甚至包括前面提到的古老的Lisp),都是使用根搜索算法(GC Roots Tracing)判定对象是否存活的。这个算法的基本思路就原创 2013-09-29 20:40:57 · 579 阅读 · 0 评论 -
Java使用memcached
1.加载commons-pool-1.5.6.jar、java_memcached-release_2.6.6.jar、slf4j-api-1.6.1.jar、slf4j-simple-1.6.1.jar2.创建memcached工具类:01public class MemcachedUtil {0转载 2013-06-23 21:20:57 · 1197 阅读 · 0 评论 -
Java Socket
一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为转载 2013-03-13 09:55:15 · 552 阅读 · 0 评论 -
Eclipse 3.7手工安装Maven2的插件(包含POM图形编辑工具)
一、自动安装Eclipse (以3.7为例) 一般我们可以用系统自带的插件安装功能:Help –> Install New Software …输入m2e的插件地址: http://m2eclipse.sonatype.org/sites/m2e/ ,按照提示一步一步直到重启即可。二、手工安装本人的还是比较推荐(可能是本人的习惯而已)用 links 或者是新版的转载 2015-05-29 16:32:11 · 1180 阅读 · 0 评论