自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

云聪的技术错题集

基础的扎实程度直接决定高度

  • 博客(28)
  • 问答 (4)
  • 收藏
  • 关注

原创 在Linux下安装JITwatch

一、安装并运行JITwatch1. 下载jitwatchgit clone https://github.com/AdoptOpenJDK/jitwatch.git(前提是你已经安装了git,如果没有安装git,又不想安装,可以直接去github上下载,下载页面地址:https://github.com/AdoptOpenJDK/jitwatch)2. 进入ji

2015-06-30 16:57:43 1200

原创 进程互斥(三)Peterson算法

相对于Dekker算法(参见进程互斥(二)Dekker算法),Peterson算法简化了进程互斥的实现。假设有两个进程需要互斥的访问某一个临界区。Peterson算法的形式如下: public void peterson(int process) { enterRegion(process);// process表示进程号 // 临界区 leaveRegio

2015-06-28 22:33:16 3970

原创 进程互斥(二)Dekker算法

假设P、Q两个进程需要互斥进入某一个临界区。Dekker算法的基本思想是:首先看P、Q是否有进入临界区的意愿,(1)如果没有进程想进临界区,自然不用做任何事情,(2)如果只有一个进程想进临界区,就让他进入临界区,(3)如果两个进程同时都想进临界区,那么再看轮到谁进临界区了,如果刚好轮到P,P就进入临界区,Q等待,P退出临界区后Q再进入;同样,如果刚好轮到Q,Q就进入临界区,P等待,Q退

2015-06-28 21:20:59 4563

原创 进程互斥(一)相关概念

1.进程互斥由于各个进程需要使用共享资源(变量,文件等),而这些资源需要排它性使用,各个进程之间竞争使用这些资源,这一关系称为进程互斥。2.临界资源(也称互斥资源、共享变量)系统中一次只允许一个进程使用的资源。3.临界区(也称互斥区)各个进程中对某个临界资源实施操作的程序片段。临界区的使用原则:(本文内容整理自coursera上陈

2015-06-28 20:44:06 1725

原创 Java反射(四)利用反射调用方法

有Student类:package testreflection;public class Student{ private static int count; private String stuNum; public Student(String stuNum) { // TODO Auto-generated constructor stub this.stuNum

2015-06-26 22:25:43 1777

原创 Java反射(三)在运行时利用反射分析对象

在运行时利用反射分析对象,其实就是利用反射来获得或者设置类的域。举例如下:有一个Student类:package testreflection;public class Student { private String stuNum; public Student(String stuNum) { // TODO Auto-generated constructor stub

2015-06-26 21:54:49 936

原创 Java反射(二)利用反射分析类的能力

利用反射分析类能力的类的源码如下(来源于《Java核心技术》卷一):package testreflection;import java.util.*;import java.lang.reflect.*;/** * 这个类利用反射打印出一个类的所有特征 * * @version 1.1 2004-02-21 * @author Cay Horstmann */publ

2015-06-26 21:35:39 1191

原创 Java反射(一)Class类对象

被虚拟机加载的Java类的类信息放在方法区中;在类被加载进内存后,还会在堆区生成一个Class类对象,该对象向程序员提供了访问方法区中类信息的接口。一个类对应着一个Class对象。

2015-06-25 17:58:27 1054

原创 Java内部类(四)静态内部类

如果使用内部类只是为了把一个类隐藏在另一个类的内部类,并不需要内部类引用外部类对象,就可以将内部类声明为static。换句话说,static的作用就是使内部类中没有对外部类对象的引用。

2015-06-21 20:41:24 664

原创 Java内部类(三)匿名内部类

如果只需要创建一个内部类的一个对象,就没必要给这个类一个名字。这个没有名字的内部类叫做匿名内部类。1. 扩展自接口的匿名内部类package innerclass;public interface Say { public void saySomething();}package innerclass;public class TestSay { public stat

2015-06-21 19:52:45 670

原创 Java内部类(二)局部内部类

局部内部类就是声明在一个块(通常是方法)中的类。举例如下:package innerclass;public class Outer1 { private String outerClassName = "Outer1"; public void printLocalClass(final boolean isPrintOuterClassName) { // 与常规内部类不同,

2015-06-21 19:04:13 2954

原创 java final的使用

1.final局部变量public class TestFinal1 { public static void main(String[] args) { // 局部final变量可以在声明的时候初始化 final boolean flag = true; }}package testfinal;public class TestFinal1 { public sta

2015-06-21 15:23:33 902

原创 SQL语句的执行顺序

之前看到一张介绍SQL语句执行顺序的图:(此图来自文章 SQL语句执行顺序图文介绍)这图画得非常好,清晰地展现了SQL语句的执行顺序;今天做了一道题,又加深了对SQL语句执行顺序的理解。有这样一张表:题目是:列出包含在超过一个订单(订单号:XORDER$id)中的所有商品的商品id(商品id:PRODUCT$id)、订购数量,以商品id的降序为序。SQL

2015-06-21 11:21:58 2010

原创 Java内部类(一)常规内部类

常规内部类和普通类最大的不同就是,它能访问外部类的私有实例域。下面是一个例子:package innerclass;public class Outer { private boolean isPrint; public Outer(boolean isPrint) { this.isPrint = isPrint; } public void useInnerMetho

2015-06-20 16:01:42 1018

原创 Java 回调

回调用于指定一个方法的具体行为。下面用实例来解释:package testcallback;public interface Action { public void performAction();}package testcallback;public class ActionImpl implements Action { @Override public voi

2015-06-20 12:24:59 708

原创 Java 线程安全的单例模式实现方式(一)及解释

单例模式确保一个类只有一个实例,并提供一个全局访问点。Java源代码:public class Singleton { private static Singleton uniqueInstance = new Singleton(); private Singleton() {} public static Singleton getInstance() { retur

2015-06-20 10:38:52 1078

原创 在浏览器中运行applet

用以下两个类定义了一个applet:import javax.swing.JApplet;public class VideoApplet extends JApplet{ public void init() { add(new VideoPanel()); }}import java.awt.Dimension;import java.awt.GridLayout;

2015-06-19 18:29:13 6057

原创 Java 测试正则表达式(二)量词和量词后缀

测试的结果作为注释放在测试方法的后面。package regularexpression;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;/** * 测试量词和量词后缀; * X和Y是正则表达式 * @author yunc

2015-06-15 22:36:11 1121

原创 Java 测试正则表达式(一)字符类

测试的结果作为注释放在测试方法的后面。package regularexpression;import java.util.regex.Matcher;import java.util.regex.Pattern;import org.junit.Test;/** * 测试字符类; * @author yuncong * */public cl

2015-06-15 21:11:07 767

原创 交互式系统中采用的调度算法

1.轮转调度(1)时间片轮转调度算法CPU的时间分成一段一段的,每一段就是一个时间片,进程轮流使用时间片。示意图如下:(2)虚拟轮转法时间片轮转调度算法对IO型进程不公平:对于CPU型进程,该进程获得CPU时间片后总是会用完整个时间片;但是对于IO型,它经常是运行一部分时间片后就去等待IO事件,总是用不完自己的时间片。为了解决这个问题,提出了虚拟轮转法,该算法的示意图如下:

2015-06-13 22:21:46 3851

原创 批处理系统中采用的调度算法

1.CPU调度的概念CPU调度是指按照一定的调度算法从就绪队列中选择一个进程,把CPU的使用权交给被选中的进程。如果没有就绪进程,系统会安排一个系统空闲进程或者idle进程上CPU运行。 2.衡量调度算法的指标吞吐量——单位时间完成的进程的数目。周转时间——每个进程从提出请求到运行完成的时间。响应时间——从提出请求到第一次回应的时间。CPU利用率——CPU做有效工作

2015-06-11 01:57:15 5335

原创 Java泛型 通配符的限定

当我们声明一个泛型类变量时,会用具体的类型代替泛型类的类型变量。

2015-06-09 14:41:25 1058 1

原创 Java泛型 继承中类型变量的关系

通过例子来看泛型类在继承中过程中类型变量应该具有怎样的关系。首先给出几个辅助类:package generic;public class Animal { }package generic;public class Person extends Animal { private String name; public Person(String name)

2015-06-09 11:25:04 1441

原创 Java泛型 类型擦除在继承中引入的问题及编译器的解决方法

举例来说明类型擦除在继承中引入的问题以及编译器是如何解决的。有一个Pair类:package generic;/** * @version 1.00 2004-05-10 * @author Cay Horstmann */public class Pair { private T first; private T second; public Pair(

2015-06-09 10:14:34 990

原创 Java泛型 类型擦除

任何一个泛型类型,都对应这个一个原始类型。原始类型的名字来源于带参数的泛型类型名去掉参数后的结果,并将类中用到类型变量的地方替换为类型变量的限定类型(如果没有限定类型就用Object)。下面是一个来源于《Java核心技术 卷1》的例子:类型擦除前:package generic;/** * @version 1.00 2004-05-10 * @author Cay Horstma

2015-06-08 16:37:46 850

原创 Java泛型 泛型类型的继承规则

泛型类型的继承规则可能不能凭直觉的来想当然。下面举个例子来看看泛型类型的继承规则。首先有几个辅助类:package generic;public class Person extends Animal { private String name; public Person(String name) { super(); this.name = name; } pu

2015-06-08 16:04:27 4538

原创 Java泛型 类型变量的限定

有时候,类和方法需要对类型变量加以约束,比如你有一个方法,你只希望它接收某个特定类型及其子类型作为参数。下面就举一个方法限定接收参数的类型的例子来说明如何限定类型变量。首先有几个简单的辅助类:package generic;public class Person extends Animal { private String name; public Person(Strin

2015-06-08 15:43:24 3413

原创 Java 方法签名

方法的名字和参数列表成为方法的签名。注意,方法签名不包括方法的返回类型。本文通过测试理解参数列表的真正含义,以及在继承中重写方法时方法的返回值与父类中方法的返回值应该有怎样的关系。这里有三个辅助类:package methodsign;public class Ancestor {}package methodsign;public class Parent extend

2015-06-05 10:17:55 4650

空空如也

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

TA关注的人

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