Java基础
文章平均质量分 60
zxf_noimp1
这个作者很懒,什么都没留下…
展开
-
java中的synchronized同步原理
synchronized关键字如果应用于方法,代表这个方法加锁,相当于不管哪个线程A每次运行到这个方法的时候,都要检测有没有其它正在使用这个方法的线程B(C或者D等),有的话要等正在使用这个方法的线程B(C或者D等)运行完这个方法后在运行线程A,没有的话,直接运行。 它包括两种用法:synchronized方法和 synchronized 块。1. synchron...原创 2011-05-19 14:43:59 · 105 阅读 · 0 评论 -
java多线程二:控制线程方法
join线程:1、Thread线程提供了让一个线程等待另外一个线程执行完成的方法:join方法。当某个正在执行的线程A调用了B线程的join()方法时,那么A线程将会被阻塞,知道B线程执行完成为止才会可能执行。2、join有三种重载形式: join():等待被join的线程执行完成。 join(long mills):等待被join的线程的最长时间为mills毫秒,如果在mil...原创 2011-07-20 10:25:03 · 95 阅读 · 0 评论 -
java多线程三:线程同步
多线程编程是很有趣的事情,它常常容易出现"错误情况",这是由于系统的线程调度具有一定的随机性。当使用多个线程来访问同一个数据时,非常容易出现线程安全问题。例如:一个经典的例子,银行取钱的问题。package com.yt.manager.thread.synchronus;/** * @Description:帐户信息 * @ClassName: Account ...原创 2011-07-20 11:21:18 · 95 阅读 · 0 评论 -
Java枚举
枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。枚举在什么地方适用呢?一条普遍规则是,任何使用常量的地方,例如目前用 switch 代码切换常量的地方。如果只有单独一个值(例如,鞋的最大尺寸,或者笼子中能装猴子的最大数目),则还是把这个任务留给常量吧。但是,如果定义了一组值,而这些值中的任何...原创 2011-03-28 15:37:45 · 69 阅读 · 0 评论 -
Java中的线程
Java线程:概念与原理一、现在的操作系统是多任务操作系统 多线程是实现多任务的一种方式。进程是指内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程。比如,在windows系统中,一个运行的exe就是一个进程。线程是指进程的一个执行流程,一个进程中可以运行多个线程。比如java.exe进程中可以运行多个线程,线程总是属于某个进程,进程中的多个...原创 2011-04-07 10:55:07 · 63 阅读 · 0 评论 -
java中的排序
/** * 选择排序:首先第一趟从n个元素中找到最大或最小的元素与第一个元素交换; * 第二趟从第二个元素开始的第n-1个元素中再选出最小的放到第二位,以此类推。 * @author Administrator * */public class SelectSort { /** * 有大到小 * * @param values */...原创 2012-02-15 10:01:21 · 88 阅读 · 0 评论 -
ant 使用
build.xml<?xml version="1.0"?><project default="dist" name="test_ant"> <property name="srcDir" location="src" /> <property name="buildDir"原创 2012-06-25 11:41:27 · 91 阅读 · 0 评论 -
session超时时间设置方法
由于session值之前没有设置,以至于刚登录的网站,不到一分钟就超时了,总结了一下,原来是session过期的原因,以下是设置session时间的3个方法:1、在tomcat——>conf——>servler.xml文件中定义:<Context path="/test" docBase="/test" defaultSessionTimeOut...原创 2012-11-05 15:11:17 · 242 阅读 · 0 评论 -
代替request.getRealPath()
代替request.getRealPath(); ServletContext context = session.getServletContext();String realContextPath = context.getRealPath(request.getContextPath());原创 2014-03-21 11:22:32 · 101 阅读 · 0 评论 -
本文出一个简单读取JVM内存使用情况的例子
<%@page contentType="text/html" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd"><html>&a原创 2015-12-07 15:16:24 · 104 阅读 · 0 评论 -
log4j2 配置
1、log4j2官方下载地址http://logging.apache.org/log4j/2.x/download.html 基本上你只需要导入下面两个jar包就可以了(xx是乱七八糟的版本号):log4j-core-xx.jar log4j-api-xx.jar2、日志级别:我们现在要调用logger的方法,不过在这个Logger对象中,有很多方法,所以要先了解log4j的日志...原创 2016-01-06 17:10:40 · 180 阅读 · 0 评论 -
java多线程一:概念与原理
1、线程是什么? 几乎所有的操作系统都支持同事运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程。当一个程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程。 多线程则扩展了多进程的概念。使得同一个进程可以同时并发处理多个任务。线程(Thre...原创 2011-07-19 16:13:10 · 115 阅读 · 0 评论 -
封装类比较出现的问题
Java为了性能提供了一个类似缓存的东西,不仅仅是Integer,Long也有同样的缓存,在内存中定义了一个长度为 255的对象数组,装箱之前先比较一下,如果是在-128-127范围内就直接取,所以只要是-128~127之间的取的都是一个对象,是true了,-128~127之外的就会重新new对象。public class IntegerTest { /** * @...原创 2011-10-09 10:24:34 · 160 阅读 · 0 评论 -
java中的IO操作
1、Java的IO支持通过java.io下的类和接口支持,java.io包下面主要包括输入、输出两种IO流,每种输入、输出又可分为字符流和字节流两大类。其中字节流以字节为单位来进行输入、输出操作,而字符流则以字符为单位来进行输入输出操作。2、 流的分类:通常从内存向硬盘读数据成为输出流,从硬盘想内存读数据成为输入流。3...原创 2011-07-13 14:54:49 · 63 阅读 · 0 评论 -
Java代理模式
一、静态代理package com.yt.manager.proxy;/** * @Description: 要代理的接口 * @ClassName: Service * @Project: spring-aop * @Author: zxf * @Date: 2011-6-2 */public interface Service { public ...原创 2011-05-19 16:14:34 · 65 阅读 · 0 评论 -
cglib动态代理
Spring AOP使用了两种代理机制,一种是基于JDK的动态代理,另一种是基于CGLib的动态代理,之所以需要两种代理机制,很大程度上是因为JDK本身只提供基于接口的代理,不支持类的代理。 切入点一般是方法调用之前,之后或者两端。1、要代理的类package com.yt.manager.proxy;publi...原创 2011-05-19 16:49:14 · 77 阅读 · 0 评论 -
JAVA代码编写的30条建议推荐
AVA代码编写的30条建议推荐 (1) 类名首字母应该大写。字段、方法以及对象(句柄)的首字母应小写。对于所有标识符,其中包含的所有单词都应紧靠在一起,而且大写中间单词的首字母。例如: ThisIsAClassName thisIsMethodOrFieldName 若在定义中出现了常数初始化字符,则大写static final基本类型标识符中的所有字母。这样便可标志出它们属于编译...原创 2010-11-02 11:01:19 · 64 阅读 · 0 评论 -
Java的类加载器
1、类加载器负责将.class文件(可能在磁盘上,也可能在网络上)加载到内存中,并为之生成一个java.lang.Class对象。 JVM在运行时会产生三个ClassLoader:根装载器、扩展类装载器(ExtClassLoader)、系统应用类装载器(AppClassLoader)。 现分别对这几个类的装载器说明如下: (1)、根装载器(bootstrap cl...原创 2011-05-25 12:00:14 · 138 阅读 · 0 评论 -
Java中的单例模式
说明:如果要保证系统里一个类最多只能存在一个实例时,我们就需要单例模式。这种情况在我们应用中经常碰到,例如缓存池、数据库连接池、线程池、一些应用服务实例等。在高并发环境中,可能会创建多个对象实例,这时候只要加入synchronized关键字,就能保证线程安全了package com.yt.manager.javamodel.singleton;import org.apache...原创 2011-05-26 10:38:06 · 59 阅读 · 0 评论 -
Java中简单的工厂模式
1、作用:在软件系统中,经常面临“一系列相互依赖对象”的创建工作,为了绕过常规对象的创建方式(即用new创建),利用工厂模式,提供一种“封装机制”来减少功能调用程序和“多系列具体对象创建工作”的耦合性。 通常程序员在编写代码时,需要一个产品(对象)时,都是自己去创建(也就是new一个对象),显然这对于程序员来说很不方便, 我们能不能将创建产品(对象)的工作交给其他事物来做,于是...原创 2011-05-26 10:40:56 · 74 阅读 · 0 评论 -
Java序列化
一、当两个进程在进行远程通信的时候,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转化为字节序列,才能在网络上发送,接收方则需要把字节序列重新转化为Java对象。定义:把Java对象转化为字节序列的过程称为序列化,把字节序列转化为Java对象的过程成为反序列化。应用: 1. 永久性保存对象,保存对象的字节序...原创 2011-05-30 14:51:29 · 64 阅读 · 0 评论 -
java反射机制
一、定义: 1、在Java运行时环境中,对于任意一个类,能否知道这个类都有那些属性和方法?对于任意一个对象,能否调用它的任意一个方法?答案是可定的。 这种动态获取类的信息以及动态调用类的方法的功能来自于Java的反射(reflection)机制。 Java的反射机制提供了以下功能: (1)、在运行时判断任意一个对象所属的类。 (2)、在运行...原创 2011-06-02 14:06:43 · 64 阅读 · 0 评论 -
Java垃圾回收机制
1、当程序创建对象时,系统会在堆空间中为之分配一块内存区域,对象就保存在该内存中,当这块内存不再配任何引用变量引用时,这块内存就变成垃圾,等待垃圾回收机制进行回收。垃圾回收机制具有如下特征:1)、垃圾回收机制只负责回收堆内存中的对象,不会回收任何物理资源(例如:数据库连接,网络IO等资源)。2)、程序无法精确的控制垃圾回收的运行,垃圾回收会在合适的时候进行。当对象永久性的失去引用后,系统就...原创 2011-07-06 16:55:20 · 68 阅读 · 0 评论 -
多线程下载文件
网络蚂蚁、FlashGet、迅雷等支持HTTP协议的下载软件无一例外地使用了多线程下载技术。比起单线程下载,多线程下载在同一时间段内发出多个下载请求,每个下载请求负责下载一段内容,充分地利用了网络带宽。当然多线程下载并非线程数越多越好。试想,一个极端的情况:一个尺寸为1 024个字节的远程文件,动用1 024个线程来下载,每个线程平均只下载一个字节,创建线程的代价和对自身网络出口造成的...原创 2011-07-13 14:11:09 · 228 阅读 · 0 评论 -
采用DES加密解密实现接口的通信加密认证
DES全称Data Encryption Standard,是一种使用密匙加密的块算法。现在认为是一种不安全的加密算法,因为现在已经有用穷举法攻破DES密码的报道了。尽管如此,该加密算法还是运用非常普遍,是一种标准的加密算法。3DES是DES的加强版本。方式一:DES加密后把二进制字节转化成十六进制字符。package com.zzstxx.des.utils;import ja...原创 2018-08-22 09:20:42 · 701 阅读 · 0 评论