- 博客(34)
- 收藏
- 关注
原创 java锁机制
一段synchronized的代码被一个线程执行之前,他要先拿到执行这段代码的权限,在java里边就是拿到某个同步对象的锁(一个对象只有一把锁); 如果这个时候同步对象的锁被其他线程拿走了,他(这个线程)就只能等了(线程阻塞在锁池等待队列中)。 取到锁后,他就开始执行同步代码(被synchronized修饰的代码);线程执行完同步代码后马上就把锁还给同步对象,其他在锁池中等待的某个线程就可以拿到...
2014-11-19 16:33:51 108
原创 http协议无状态理解
Http是一个无状态协议,同一个会话的连续两个请求互相不了解,他们由最新实例化的环境进行解析,除了应用本身可能已经存储在全局对象中的所有信息外,该环境不保存与会话有关的任何信息。自己的理解,在asp.net里:每次提交服务器的页面没有任何关系,每次记录在页面的信息下次提交是记不住的,(除了应用本身可能已经存储在全局对象中的所有信息外)在.net里实际就是ViewState,Vie...
2014-10-28 09:54:47 132
原创 java实现多线程方法以及区别?
Java中有两种实现多线程的方式以及两种方式之间的区别看到一个面试题.问两种实现多线程的方法.没事去网上找了找答案. 网上流传很广的是一个网上售票系统讲解.转发过来.已经不知道原文到底是出自哪里了. Java中有两种实现多线程的方式。一是直接继承Thread类,二是实现Runnable接口。那么这两种实现多线程的方式在应用上有什么区别呢? 为了回答这个问题,我们可以...
2014-10-27 16:15:04 118
原创 jvm类加载器委托机制
Java虚拟机JVM学习05 类加载器的父委托机制 类加载器 类加载器用来把类加载到Java虚拟机中。 类加载器的类型 有两种类型的类加载器: 1.JVM自带的加载器: 根类加载器(Bootstrap) 扩展类加载器(Extension) 系统类加载器(System) 2.用户自定义的类加载器: java.lang....
2014-10-18 20:59:28 119
原创 java发射
反射机制最重要的部分是准许你检查类的结构。java.lang.reflect包中的三个类Field、Method、Constructor相应的描述了一个类的字段、方法、构造函数。使用这些类的时候必须要遵循下面步骤:第一步是获得你想操作的类的 java.lang.Class 对象。下面就是获得一个 Class 对象的方法之一:Class c = Class.forName("java.lang...
2014-10-15 21:25:15 240
原创 java序列化与反序列化
Java 串行化技术可以使你将一个对象的状态写入一个Byte 流里,并且可以从其它地方把该Byte 流里的数据读出来,重新构造一个相同的对象。这种机制允许你将对象通过网络进行传播,并可以随时把对象持久化到数据库、文件等系统里。Java的串行化机制是RMI、EJB等技术的技术基础。用途:利用对象的串行化实现保存应用程序的当前工作状态,下次再启动的时候将自动地恢复到上次执行的状态。 序列化就...
2014-10-15 19:32:11 74
原创 this与super比较
1.什么是super?什么是this?super关键字表示超(父)类的意思。this变量代表对象本身。2.使用super&this调用成员变量和方法可以使用super访问父类被子类隐藏的变量或覆盖的方法。当前类如果是从超类继承而来的,当调用super.XX()就是调用基类版本的XX()方法。见示例1。当类中有两个同名变量,一个属于类(类的成员变量),而另一个属于某个特定的...
2014-10-13 12:01:58 72
原创 java运算符
移位运算符就是在二进制的基础上对数字进行平移。按照平移的方向和填充数字的规则分为三种:<<(左移)、>>(带符号右移)和>>>(无符号右移)。 在移位运算时,byte、short和char类型移位后的结果会变成int类型,对于byte、short、char和int进行移位时,规定实际移动的次数是移动次数和32的余数,也就是移位33次和移位1次得到的结果相...
2014-10-10 15:39:53 70
原创 jvm原理
JVM 原理解释 JVM 全称是 Java Virtual Machine ,Java 虚拟机,这个 JVM 你是看不到的,它存在内存中。我们知道计算机的基本构成是:运算器、控制器、存储器、输入和输出设备,那这个 JVM 也是有这成套的元素,运算器是当然是交给硬件 CPU 还处理了,只是为了适应“一次编译,随处运行”的情况,需要做一个翻译动作,于是就用了JVM 自己的命令集...
2014-09-27 11:20:29 111
原创 socket
对TCP/IP、UDP、Socket编程这些词你不会很陌生吧?随着网络技术的发展,这些词充斥着我们的耳朵。那么我想问:1. 什么是TCP/IP、UDP?2. Socket在哪里呢?3. Socket是什么呢?4. 你会使用它们吗?什么是TCP/IP、UDP? TCP/IP(Transmission Control...
2014-09-09 16:40:40 92
原创 spring ioc与aop原理
spring IoC和AOP的原理(2012-04-07 11:54:33)转载▼标签:springiocaop 下面为spring的主要原理:IoC(Inversion of Control):IoC就是应用本身不依赖对象的创建和维护而是交给外部容器(这里为spring),这要就把应用和对象之间解耦,控制权交给了外部容器。即Don'...
2014-09-08 23:09:58 770
原创 面向切面编程
面向切面编程(AOP是Aspect Oriented Program的首字母缩写) ,我们知道,面向对象的特点是继承、多态和封装。而封装就要求将功能分散到不同的对象中去,这在软件设计中往往称为职责分配。实际上也就是说,让不同的类设计不同的方法。这样代码就分散到一个个的类中去了。这样做的好处是降低了代码的复杂程度,使类可重用。 但是人们也发现,在分散代码的同时,也增加了代码的重复性。什么...
2014-09-08 22:50:06 93
原创 struts1与struts2原理
Struts1和Struts2核心控制器的执行原理Struts11、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web、xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config、xml)的配置信息,为struts中不同的模块初始化相应的对象。2、发送请求:用户提交表单或通过URL向WEB服...
2014-09-08 22:31:59 71
原创 js继承
js中继承可以分为两种:对象冒充和原型链方式 一、对象冒充包括三种:临时属性方式、call()及apply()方式1.临时属性方式代码如下:function Person(name){ this.name = name; this.say = function(){ alert('My name is '+this.name);...
2014-08-30 11:24:45 94
原创 线程池
简单介绍: 创建线程有两种方式:继承Thread或实现Runnable。Thread实现了Runnable接口,提供了一个空的run()方法,所以不论是继承Thread还是实现Runnable,都要有自己的run()方法。 一个线程创建后就存在,调用start()方法就开始运行(执行run()方法),调用wait进入等待或调用sleep进入休眠期,顺利运行完毕或休眠被中断或运行过程中出现...
2014-08-29 20:30:31 76
原创 java垃圾回收机制
1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象;而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除了释放...
2014-08-29 16:11:53 67
原创 java内存机制2
本文将由浅入深详细介绍Java内存分配的原理,以帮助新手更轻松的学习Java。这类文章网上有很多,但大多比较零碎。本文从认知过程角度出发,将带给读者一个系统的介绍。进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要 性。所以在...
2014-08-28 20:11:29 78
原创 java内存机制
1.Java的内存机制 Java 把内存划分成两种:一种是栈内存,另一种是堆内存。在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配,当在一段代码块定义一个变量时,Java 就在栈中为这个变量分配内存空间,当超过变量的作用域后(比如,在函数A中调用函数B,在函数B中定义变量a,变量a的作用域只是函数B,在函数B运行完以后,变量a会自动被销毁。分配给它的内存会被回收),J...
2014-08-28 19:56:09 151
原创 java的反射与代理
反射:通过类名获取该类的所有成员方法、变量,或者实例化对象等。例:Class B 访问Class A 的retnum方法 package com.ysu.fams.webservices;public class A { int count = 40; public int retnum(int i){ count = i; ...
2014-08-19 16:11:00 65
原创 常见sql优化
DBMS:数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。1、建立索引 在经常检索的字段上加入索引,能很大程度上提升性能,当遇到检索比较慢的时候,第一时间想到的就是加入索引。 2、调整Where子句中的连接顺序 DBMS一般采用自下而上的顺序解析Where子...
2014-08-19 14:13:53 72
原创 状态模式
一、前言 允许一个对象的内部状态改变时改变它的行为。对象看起来似乎修改了它的类。二、结构图 三、应用场景 ◆ 在Context 中进行状态的维护和转换 public interface VoteState { /** * 处理状态对应的行为 * @param user 投票人 * @pa...
2014-07-28 14:45:16 79
原创 代理模式
一、前言 对一些对象提供代理,以限制那些对象去访问其他对象。二、结构图 三、应用场景 比如在玩“极品飞车”这款游戏,如果游戏者手中的金钱达到了一定的数量就可以到车店买一部性能更高的赛车,那么这个卖车的“车店”就是一个典型的“汽车厂家”的“代理”,他为汽车厂家“提供卖车的服务”给有需求的人士。从面向对象的方面考虑,“销售汽车的代理”也是一个对象,那么这个对象也具有一定的状态,...
2014-07-28 14:38:01 87
原创 模板模式
一、前言 以前只知道抽象类与接口的区别,而不知道为什么会有这样的区别,看了模板模式的例子算是知其所以然了。二、结构图 三、应用场景 比如说生成手机,生产的流程是相同的,但是具体的细节可能有所不同(比如手机的颜色,手机的类别,手机的大小等等)。package TemplateDemo;/*** 这是一个抽象的模板类* */abstract clas...
2014-07-24 16:06:32 69
原创 策略模式
一、前言 今天看了一篇写策略模式的博客,觉得里面举的例子挺有意思,至少会让你更加容易来记忆策略模式。二、概论 策略模式又叫算法簇模式,就是定义了不同的算法簇,并且之间可以相互替换,此模式让算法的变化独立于使用算法的客户,可以动态改变对象的行为。三、应用场景举例说明 刘备要到江东娶老婆了,走之前诸葛亮给赵云(伴郎)三个锦囊妙计,说是按天机拆开能解决棘手问题,嘿,还别说,...
2014-07-24 11:27:03 78
原创 Eclipse Hibernate Synchronizer插件操作数据库
使用eclipse插件Hibernate Synchronizer进行数据库的CRUD,下载附件。
2012-06-08 17:10:58 84
原创 分割字符串
需求:编写一个截取字符串的函数,输入一个字符串和字节数,输出为按字节数截取的字符串,但是要保证汉字不能截半个,如“我ABC” 4,应该截为"我AB",输入"我ABC汉DEF" 6,应该输出为"我ABC",而不是"我ABC+汉的半个"。 public static void split(String str,int split){ System.out.println(str.getB...
2012-05-26 16:19:02 77
原创 二分法查找、递归
需求:查找数组中某个元素的下标 实现方法:二分法查找(折半查找,每次把表分成两半,因为已经排好序,所以每次只需要和中间的数比较,就能确定要查找的值在哪一半,然后不断分成两半,直到匹配,如果没有找到,则表示没有该元素) public static int find(int x) { int[] intsz = new int[] { 10, 22, 36, 47, 58,...
2012-05-26 13:00:08 225
原创 java值传递与引用传递的区别
在谈java值传递与引用传递之前必须搞清楚"形式参数"和"实际参数"两个概念 在一个方法中,比如method1(Object o)中,O就是形参,形参就是形式参数,当你调用这个方法时,要传入一个值,这个值叫做实际参数,也叫实参,形参你可以理解成一个占位符(为传入实参占一个位置).值传递:方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实...
2012-04-11 11:21:06 67
原创 Java 自增“--”和自减“--”运算符的用法
++运算符是对变量的值加1,--运算符是对变量的值减1,如: int a=5; int b=10;a++;//或++a; b--;//或--b;a的值变成了6,b的值为9,++和--不论在变量名前还是在变量名后,都是对变量加1或减1; 在给变量赋值时++和--运算符在变量前和变量后有所不同如:...
2012-04-11 11:15:25 141
原创 Centos6.0安装配置samba
Windows与Windows系统之间可以很容易的共享文件。但要Windows与Linux共享文件则需要架设Samba服务器。Samba通过SMB协议,可以实现Windows与Linux之间的文件共享。这里我们主要介绍如何安装配置Samba服务器以及添加Samba用户。安装Samba服务器之间,需要关闭SELinux。安装Sambayum install cups-lib...
2012-03-21 15:44:38 171
原创 centos6.0下 convirt2.0安装
convirt 是一个很不错的XEN等虚拟机的集中管理工具,基于Python开发。所以需要安装Python环境,这个直接使用YUM INSTALL PYTHON 即可[b]一、下载convirt2.0[/b][b]1、使用YUM 方式安装convirt[/b]yum install pythoncd /etc/yum.repos.d wget --no-cache htt...
2012-03-09 13:05:34 120
原创 centos6.0安装xen-4.1.1
1.下载xen的源代码,解压tar -xzf xen-4.1.1.tar.gzcd xen-4.1.1make helpmake dist-xen dist-tools注:在安装的时候会出现一些错误,原因是一些工具软件没有安装,提示什么没有,使用yum install dev86(等等)安装就可以了。2.下载编译内核tar vxzf linux-3.1-rc4.tar....
2012-03-07 15:26:54 85
原创 centos中安装haproxy
在命令行里执行下列命令。1.在/usr/local下创建haproxy文件夹cd /usr/local1.下载haproxy-1.3.15.7.tar.gzwget http://haproxy.1wt.eu/download/1.3/src/haproxy-1.3.15.7.tar.gz2.解压缩haproxy-1.3.15.7.tar.gztar -zxvf hapro...
2012-03-05 10:01:29 72
原创 KVM中新建虚拟子网
1.vi /etc/libvirt/qemu/networks/qybr.xml qybr10 80eab63e-2b1e-4844-b237-0bb3288c39c3 2.virsh net-define /etc/libvirt/qemu/networks/qybr10.xml virsh ne...
2012-03-05 09:59:34 176
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人