Java基础
文章平均质量分 57
奋斗的兔儿
在路上
展开
-
Java程序优化的一些最佳实践
作者通过经历的一个项目实例,介绍Java代码优化的过程,总结了优化Java程序的一些最佳实践,分析了进行优化的方法,并解释了性能提升的原因。作者从多个角度分析导致性能低的原因,并逐个进行优化,最终使得程序的性能得到极大提升,增强了代码的可读性、可扩展性。一、衡量程序的标准衡量一个程序是否优质,可以从多个角度进行分析。其中,最常见的衡量标准是程序的时间复杂度、空间复杂度,以及代码的可读性转载 2013-08-14 16:42:27 · 552 阅读 · 0 评论 -
自定义classloader加密java程序
大概想法是这样的: 1. 生成密钥用于在des算法中加密。 2. classloader类中动态的解密class,并且通过反射机制执行main方法。 3. 对classloader类进行高质量的混淆。 首先需要生成des算法中的key: Java代码 import java.io.File; import java.io.FileOutp转载 2013-08-29 15:57:28 · 2817 阅读 · 0 评论 -
重写hashCode和equals方法
如果你的对象想散列存储的集合中或者想作为散列Map的Key时(HashSet、HashMap、Hashtable等)那么你必须重写equals()方法,这样才能保证唯一性。在重写equals()方法的同时,必须重写hashCode()方法?当然,在这种情况下,你不想重写hashCode()方法,也没有错,但是sun建议这么做,重写hashCode只是技术要求(为了提高效率)。 当转载 2013-09-10 16:05:20 · 884 阅读 · 0 评论 -
深拷贝浅拷贝的解释
深拷贝浅拷贝的解释原创 2013-09-11 19:31:39 · 955 阅读 · 0 评论 -
slf4j配置
本文来自 http://www.cnblogs.com/tsingxu/archive/2011/11/06/2238453.html package com.slf4j.test;import org.slf4j.*;/** * * @author Tsingxu * */public class test { public static final Logger转载 2013-09-21 11:32:15 · 808 阅读 · 0 评论 -
JAVA中的指针,引用及对象的clone
看到这个标题,是不是有点困惑:Java语言明确说明取消了指针,因为指针往往是在带来方便的同时也是导致代码不安全的根源,同时也会使程序的变得非常复杂难以理解,滥用指针写成的代码不亚于使用早已臭名昭著的"GOTO"语句。Java放弃指针的概念绝对是极其明智的。但这只是在Java语言中没有明确的指针定义,实质上每一个new语句返回的都是一个指针的引用,只不过在大多时候Java中不用关心如何操作这个"指针转载 2013-09-21 11:34:32 · 763 阅读 · 0 评论 -
8 张图助你更好地理解 Java 编程
所谓一图胜万言,本文中的这些图都是从ProgramCreek网站中的Java教程中通过票选选出来的。可以帮助你很好地回顾Java的一些知识,如果你是一个初学者,也可以很好地帮助你理解Java。你可以通过标题上的链接来阅读更详细的内容。 1. 字符串不变性 下图显示了下面的代码发生了什么事情。 Java代码 String s = "abcd";转载 2013-10-08 16:53:13 · 833 阅读 · 0 评论 -
字节、字、bit、byte的关系
字 word 字节 byte 位 bit 字长是指字的长度1字=2字节(1 word = 2 byte) 1字节=8位(1 byte = bit) 一个字的字长为16 一个字节的字长是8bps 是 bits per second 的简称。一般数据机及网络通讯的传输速率都是以「bps」为单位。如56Kbps、100.0Mbps 等等。 Bps即是By转载 2013-10-23 14:40:30 · 1185 阅读 · 0 评论 -
java中List对象排序通用方法
在数据库中查出来的列表中,往往需要对不同的字段重新排序,一般的做法都是使用排序的字段,重新到数据库中查询。如果不到数据库查询,直接在第一次查出来的list中排序,无疑会提高系统的性能。只要把第一次查出来的结果存放在session中,就可以对list重新排序了。一般对list排序可以使用Collections.sort(list),但如果list中包含是一个对象的话,这种方法还是行不通的。如转载 2014-03-21 21:19:00 · 849 阅读 · 0 评论 -
Java语言中的路径基础知识(总是忘,记录下)
Java中路径知识 一、换行符 换行(\n)就是光标下移一行却不会移到这一行的开头。 二、回车符 回车(\r)就是回到当前行的开头却不向下移一行。 Enter键按下后会执行\n\r这样就是我们看到的一般意义的回车了,所以你用16进制文件查看方式看一个文本,就会在行尾发现"\r\n"。 三、制表符 Tab是制表符,就是"\t",作用是预留8个字符的显示宽度,用转载 2014-06-09 14:21:13 · 905 阅读 · 0 评论 -
Java和Tomcat类加载机制
加载类是运行程序的基础,了解Java和Tomcat的类加载机制对更有效地开发、调试Web应用程序有一定的积极作用。本文简单介绍Java和Tomcat的类加载机制,希望对大家有所帮助。 JDK/JRE文件结构在安装JDK后,其典型的目录层次如下所示(JDK 1.6.0): 主要的目录和JAR简述如下:/bin: 包含在JDK中的开发转载 2013-08-14 15:56:48 · 805 阅读 · 0 评论 -
JAVA NIO 简介
1. 基本 概念IO 是主存和外部设备 ( 硬盘、终端和网络等 ) 拷贝数据的过程。 IO 是操作系统的底层功能实现,底层通过 I/O 指令进行完成。所有语言运行时系统提供执行 I/O 较高级别的工具。 (c 的 printf scanf,java 的面向对象封装 )2. Java 标准 io 回顾Java 标准 IO 类库是 io 面向对象的一种抽象。基于本地方法的底层转载 2013-08-14 17:42:34 · 597 阅读 · 0 评论 -
JAVA内存溢出
内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 所以我们应该明确。 1。数据库一次读取数量太大。 ResultSet rs = null;PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(fileName)));原创 2013-06-09 11:34:17 · 750 阅读 · 0 评论 -
Java内存溢出的各种类型及详细解决方案
JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就是,是在JVM启动时创建;非堆是留给JVM自己用的,用来存放类的信息的。它和堆不同,运行期内GC不会释放空间。 一、内存溢出类型 1、java.lang.OutOfMemoryError: PermGen space JVM管理两种类型的内存,堆和非堆。堆是给开发人员用的上面说的就原创 2013-06-25 11:11:56 · 1294 阅读 · 0 评论 -
20个开发人员非常有用的Java功能代码
1. 把Strings转换成int和把int转换成StringString a = String.valueOf(2); //integer to numeric string int i = Integer.parseInt(a); //numeric string to an int String a = String.valueOf(2); //integ转载 2013-06-25 11:39:33 · 1294 阅读 · 0 评论 -
Java Socket 简单的Client/Server程序
一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。转载 2013-06-25 15:19:50 · 1200 阅读 · 0 评论 -
java 字节流与字符流的区别
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示。下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流。范例:使用字节流不关闭执行Java代码转载 2013-07-02 14:50:14 · 676 阅读 · 0 评论 -
Java中的ASCII、Unicode和UTF-8字符编码集
有Javaer在留言板提议让我专门发一篇关于ASCII和Unicode的日志,特此搜集整理一篇文章发出来,希望大家能够满意。 首先讲一下几种字符的编码方式:1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字转载 2013-07-02 16:04:00 · 3064 阅读 · 1 评论 -
内存溢出和内存泄漏的区别,今天被问蒙了。。。
内存溢出指你申请了10个字节的空间,但是你在这个空间写入11或以上字节的数据,就是溢出!!内存泄漏指你用malloc或new申请了一块内存,但是没有通过free或delete将内存释放,导致这块内存一直处于占用状态!!原创 2013-07-02 11:36:31 · 1611 阅读 · 0 评论 -
Java命令行出错Exception in thread "main" java.lang.UnsupportedClassVersionError:
好久没有命令行了,今天用下命令行出错Exception in thread "main" java.lang.UnsupportedClassVersionError: Filter(Unsupported major.minor version 50.0). in thread "main" java.lang.UnsupportedClassVersionError:" tit转载 2013-07-23 14:21:08 · 2979 阅读 · 0 评论 -
Java编程中“为了性能”尽量要做到的一些地方
最近的机器内存又爆满了,除了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。 下面是参考网络资源总结的一些在Java编程中尽可能要做到的一些地方。1. 尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,转载 2013-08-04 18:28:32 · 534 阅读 · 0 评论 -
如何有效防止Java程序源码被人偷窥?
java程序的源代码很轻易被别人偷看,只要有一个反编译器,任何人都可以分析别人的代码。本文讨论如何在不修改原有程序的情况下,通过加密技术保护源代码。 一、为什么要加密? 对于传统的C或C++之类的语言来说,要在Web上保护源代码是很轻易的,只要不发布它就可以。遗憾的是,Java程序的源代码很轻易被别人偷看。只要有一个反编译器,任何人都可以分析别人的代码。Java的灵活性使得源代码很轻易转载 2013-08-26 10:44:14 · 911 阅读 · 0 评论 -
对象拷贝类PropertyUtils,BeanUtils,BeanCopier
业务系统中经常需要两个对象进行属性的拷贝,不能否认逐个的对象拷贝是最快速最安全的做法,但是当数据对象的属性字段数量超过程序员的容忍的程度,代码因此变得臃肿不堪,使用一些方便的对象拷贝工具类将是很好的选择。目前流行的较为公用认可的工具类:Apache的两个版本:(反射机制)org.apache.commons.beanutils.PropertyUtils.copyPro转载 2014-05-28 18:21:32 · 1379 阅读 · 0 评论