自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

转载 Java类的装载、链接和初始化

Java类的装载、链接和初始化SEP 8TH, 2013 | COMMENTS加载(Loading)按如下三步执行1.通过类的全名产生对应类的二进制数据流。(注意,如果没找到对应类文件,只有在类实际使用时才抛出错误。)2.分析并将这些二进制数据流转换为方法区(JVM 的架构:方法区、堆,栈,本地方法栈,pc 寄存器)特定的数据结构(这些数据结构是实现有关

2015-01-12 22:23:18 300

转载 浅析Java虚拟机结构与机制

转载地址:http://write.blog.csdn.net/postedit本文旨在给所有希望了解JVM(Java Virtual Machine)的同学一个概念性的入门,主要介绍了JVM的组成部分以及它们内部工作的机制和原理。当然本文只是一个简单的入门,不会涉及过多繁杂的参数和配置,感兴趣的同学可以做更深入的研究,在研究JVM的过程中会发现,其实JVM本身就是一个计算机体

2015-01-12 17:31:43 332

转载 jvm内存调优

首先需要注意的是在对JVM内存调优的时候不能只看操作系统级别Java进程所占用的内存,这个数值不能准确的反应堆内存的真实占用情况,因为GC过后这个值是不会变化的,因此内存调优的时候要更多地使用JDK提供的内存查看工具,比如JConsole和Java VisualVM。对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数,过多的GC和Full GC是会占用很多的系统资源

2015-01-12 17:12:21 319

转载 java 虚拟机--新生代与老年代GC

1. Java堆中各代分布:图1:Java堆中各代分布Young:主要是用来存放新生的对象。Old:主要存放应用程序中生命周期长的内存对象。Permanent:是指内存的永久保存区域,主要存放Class和Meta的信息,Class在被 Load的时候被放入PermGen space区域. 它和和存放Instance的Heap区域不同,GC(Garbage Collection)

2015-01-12 16:56:59 294

转载 内存管理和垃圾回收

JVM内存组成结构JVM栈由堆、栈、本地方法栈、方法区等部分组成,结构图如下所示:1)堆所有通过new创建的对象的内存都在堆中分配,其大小可以通过-Xmx和-Xms来控制。堆被划分为新生代和旧生代,新生代又被进一步划分为Eden和Survivor区,最后Survivor由From Space和To Space组成,结构图如下所示:新生代。新建的对象都是用新生代分配内存,

2015-01-12 16:21:05 279

转载 Java代码编译和执行的整个过程

Java代码编译是由Java源码编译器来完成,流程图如下所示:Java字节码的执行是由JVM执行引擎来完成,流程图如下所示: Java代码编译和执行的整个过程包含了以下三个重要的机制:Java源码编译机制类加载机制类执行机制Java源码编译机制Java 源码编译由以下三个过程组成:分析和输入到符号表注解处理语义分析和生成cla

2015-01-12 16:15:57 446

转载 接口和抽象类

1.      抽象类和接口的区别所谓抽象类是用来表征我们在对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象;所谓接口,相当于电源插座,可插入构件相当于电器。可插入构件的关键在于存在一个公用的接口,以及每个构件都实现了这个接口。接口是实现构件的可插入性的关键。1.1.   从语法层区别抽象类和接口从语法层来讲,Java语言对于抽象类和接口给

2015-01-07 17:42:34 266

转载 进行线程间通信方式

一、进程间的通信方式# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (namedpipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量(semophore ) : 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种

2015-01-07 14:46:13 289

转载 从输入网址到显示网页的全过程分析

作为一个软件开发者,你一定会对网络应用如何工作有一个完整的层次化的认知,同样这里也包括这些应用所用到的技术:像浏览器,HTTP,HTML,网络服务器,需求处理等等。本文将更深入的研究当你输入一个网址的时候,后台到底发生了一件件什么样的事~1. 首先嘛,你得在浏览器里输入要网址:2. 浏览器查找域名的IP地址导航的第一步是通过访问的域名找出其IP地址。DNS查找过程如下:

2014-12-19 23:46:25 844 1

转载 概率生成器

百度的一个面试题目:.已知一随机发生器,产生0的概率是p,产生1的概率是1-p,现在要你构造一个发生器, 使得它构造0和1的概率均为1/2;构造一个发生器,使得它构造1、2、3的概率均为1/3;…, 构造一个发生器,使得它构造1、2、3、…n的概率均为1/n,要求复杂度最低。初看确实有点头晕,也没什么思路。但是仔细想想为什么生成0和1的概率均为1/2,我们可以看成是生成0和

2014-12-19 23:44:26 987

转载 Java的异常分类

1. 异常机制       异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。      传统的处理异常的办法是,函数返回一个特殊的结果来表示出现异常(通常这个特殊结果是大家约定俗称的),调用该函数的程序负责检查并分析函数返回的结果。这样做有如下的弊端:例如函数返回-1代表出现异常

2014-12-19 23:15:21 228

转载 final

final 关键字:1 final数据:对于基本类型前加以final修饰,表示被修饰的变量为常数,不可以修改。一个既是static又是final的字段表示只占据一段不能改变的存储空间。final用于对象应用时,final使应用恒定不变。一旦引用被初始化指向一个对象,就无法再把它改为指向另一个对象。class Value {int i = 1;}public class Fi

2014-12-19 23:11:22 249

转载 进程线程

进程和线程的概念  答:进程是操作系统结构的基础;是一个正在执行的程序;计算机中正在运行的程序实例;可以分配给处理器并由处理器执行的一个实体;由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单元。  线程(thread),有时被称为轻量级进程(Lightweight Process,LWP),是程序执行流的最小单元。一个标准的线程由线程ID,当前指令指针(PC),寄存器集

2014-12-19 11:53:31 297

转载 堆和栈

先了解具体的概念:JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)堆区:1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)。2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身。栈区:1.每个线程包含一个栈区,栈中只保存基础数据类型的

2014-12-19 11:50:26 271

转载 线程同步方式

线程同步的方式和机制临界区、互斥区、事件、信号量四种方式临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别 1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被

2014-12-19 11:47:42 274

转载 二分查找

1.二分查找值为key的下标,如果不存在返回-1。循环不变式:如果key存在于原始数组[0,n-1],那么它一定在[left,right]中。初始化:第一轮循环开始之前,处理的数组就是原始数组,这时显然成立。保持:每次循环开始前,key存在于待处理数组array[left, ..., right]中。对于array[mid]对于arr

2014-12-19 10:17:46 313

转载 SQL的连接语句

--建表table1,table2:create table table1(id int,name varchar(10)) -- 建表语句create table table2(id int,score int) --建表语句--插入测试值insert into table1 select 1,'lee' insert into table1 select 2,'

2014-12-18 23:36:19 346

转载 TRUNCATE DELETE DROP区别

TRUNCATE TABLE 在功能上与不带 WHERE 子句的 DELETE 语句相同:二者均删除表中的全部行。但 TRUNCATE TABLE 比 DELETE 速度快,且使用的系统和事务日志资源少。 DELETE 语句每次删除一行,并在事务日志中为所删除的每行记录一项。TRUNCATE TABLE 通过释放存储表数据所用的数据页来删除数据,并且只在事务日志中记录页的释放。 TRUNC

2014-12-18 21:56:11 252

转载 web登录界面测试

具体需求: 有一个登陆页面, (假如上面有2个textbox, 一个提交按钮。 请针对这个页面设计30个以上的test case.)此题的考察目的: 面试者是否熟悉各种测试方法,是否有丰富的Web测试经验, 是否了解Web开发,以及设计Test case的能力这个题目还是相当有难度的, 一般的人很难把这个题目回答好。首先,你要了解用户的需求,比如这个登录界面应该是弹出窗口式

2014-12-18 20:54:49 556

转载 Linux常用命令

目录的操作这部分给出的命令都关系到Linux的目录操作。它们能够完成显示当前路径、改变路径、把目录名字或文件名字列表、建立目录和删除目录以及移动目录等等。这些都是使用Linux系统是最经常、最基本的操作。显示当前的工作目录 —— pwd查看当前目录下的文件和目录 —— ls族ls族命令包括l、ls、lf、lc、lr、lx,它们所完成的工作也是不一

2014-12-17 23:17:22 743

转载 Linux常用命令--调整进程优先级

优先级的值=优先系数+nice值           优先系数由系统内核决定,不可更改nice值可以手动更改,范围是 -20~19优先级的值越低,优先级越高;优先级的值越高,优先级越低。所以想调整成最高优先级的话,就将nice值设为-20;想调整成最低优先级的话,将nice值设为19。 调整优先级:1、任务未运行前进行调整#

2014-12-17 23:06:31 1879

转载 二叉树宽度高度和判断是否相等

经常会遇到关于二叉树的算法问题,虽然比较简单,不过我觉得还是有必要总结一下.顺便写了个sample程序,以供参考.本文中主要讨论关于二叉树的以下3个问题,都是用递归来实现,Divide and conquer也就是所谓的分冶策略.    1.二叉树的高度    2.二叉树的宽度    3.比较两个二叉树是否相等数据结构的定义    先定义一个简单的二叉树,由于只是演

2014-12-17 22:50:01 359

转载 java-用两个栈实现队列&&用两个队列实现一个栈

import java.util.ArrayList;import java.util.List;import java.util.Stack; /* * Q 57 用两个栈实现队列 */public class QueueImplementByTwoStacks { private Stack stack1; private Stack stack2; Queue

2014-12-17 21:56:07 252

转载 重载和重写,override和overload

override(重写,覆盖) 1、方法名、参数、返回值相同。 2、子类方法不能缩小父类方法的访问权限。 3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4、存在于父类和子类之间。 5、方法被定义为final不能被重写。 overload(重载,过载) 1、参数类型、个数、顺序至少有一个不相同。   2、不能重载只有返回值不同的方法名。

2014-12-17 21:46:14 344

转载 TCP和UDP区别

TCP协议与UDP协议的区别    首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信!TCP/IP协议是一个协议簇。里面包括很多协议的。UDP只是其中的一个。之所以命名为TCP/IP协议,因为TCP,IP协议是两个很重要的协议,就用他两命名了。TCP/IP协议集包括应用层,

2014-12-17 21:44:45 344

转载 第一次只出现一次的字符

看到这道题时,最直观的想法是从头开始扫描这个字符串中的每个字符。当访问到某字符时拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符。如果字符串有n个字符,每个字符可能与后面的O(n)个字符相比较,因此这种思路时间复杂度是O(n2)。我们试着去找一个更快的方法。  由于题目与字符出现的次数相关,我们是不是可以统计每个字符在该字符串中出现的次数?要达到

2014-12-17 21:35:39 374

转载 final,finally,finalize的区别

我们首先来说说final。它可以用于以下四个地方:  定义变量,包括静态的和非静态的。  定义方法的参数。  定义方法。  定义类。  我们依次来回顾一下每种情况下final的作用。首先来看第一种情况,如果final修饰的是一个基本类型,就表示这个变量被赋予的值是不可变的,即它是个常量;如果final修饰的是一个对象,就表示这个变量被赋予的引用是不可变的,这里需要提醒大

2014-12-17 21:08:20 266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除