自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hunaiyo-黄奕为

欢迎大家和我交流!

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

转载 【java】深入理解异常处理机制

1. 引子       try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解。不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单、听话。不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案、也不许执行代码看真正答案哦。如果你的答案是正确,那么这篇文章你就不用浪费时间看啦。

2015-03-08 12:49:45 1268 3

原创 java虚拟机中的方法区的作用

随着对java的进一步挖掘,深入到java虚拟机的时候,我才发现原来以前学的那些莫名其妙的方法终于有了合理的解释。比如main()?我们俗称为主函数,作为程序初始线程的七点,同时将告知虚拟机为列在常量池第一项的类分配足够的内存。属于非守护线程。守护线程通畅有虚拟机自己使用的线程,比如垃圾收集任务的线程。下面我们用一个例子来分析一下,一个程序的运行,背后的虚拟机是怎么作用的。clas

2015-03-31 23:04:08 1607 1

原创 UML的几种关系

在UML类图中,常见的有以下几种关系: 泛化(Generalization),  实现(Realization),关联(Association),聚合(Aggregation),组合(Composition),依赖(Dependency)         1. 泛化(Generalization)        【泛化关系】:是一种继承关系,表示一般与特殊的关系,它指定了子类如何特

2015-03-28 22:02:43 421

转载 深入理解Java String#intern() 内存模型

大家知道,Java中string.intern()方法调用会先去字符串常量池中查找相应的字符串,如果字符串不存在,就会在字符串常量池中创建该字符串然后再返回。字符串常量池是一个固定大小的HashMap,桶的数量默认是1009, 从Java7u40开始,该默认值增大到60013。在Java6当中,字符串常量池是放在Perm空间的,从Java7开始,字符串常量池被移到Heap空间。下面,我们通过测

2015-03-22 22:10:00 570

转载 Java锁机制

问:为什么说java的syncronized关键字的效率很低?这是因为,java中线 程是映射到操作系统的原生线程上的。如果要唤醒或者是阻塞一条线程需要操作系统的帮忙。这就需要从用户态转换到核心态。因此,状态转换需要相当长的时间。 所以说syncronized关键字是java中比较重量级的操作。虚拟机本身会做一些优化。比如,在通知操作系统阻塞线程之前,加入一段自旋等待过程, 避免频繁的切入

2015-03-21 10:08:14 390

原创 观察者模式

观察者模式:在对象之间定义一对多的依赖,当一个对象的改变状态,依赖它的对象会收到通知,并自动更新。当你想要做一个响应时间之间的关联时,即一个事件的响应引起另一事件的响应。我们所用的监听器大概是这个原理。。。我们看下面的例子:首先,我们先创建一个观察者的接口,让所有的观察者都实现这个接口,同时提供一个update方法让观察者更新数据。//代码如下public interface

2015-03-19 21:33:09 388

转载 最详细的教程axure新手入门:Axure教程

首先做个声明:此次教程里为了快速完成,借用了一些网上已有教程的图文,不是剽窃,只图方便。另外,因为汉化版本可能功能名称等略有差别,请自行理解。名词解释:线框图:一般就是指产品原型,比如:把线框图尽快画出来和把原型尽快做出来是一个意思。axure元件:也叫axure组件或axure部件,系统自带了一部分最基础常用的,网上也有很多别人做好的,软件使用到一定阶段可以考虑自己制作元

2015-03-19 12:28:35 3752

原创 快速排序

基本思想:在一个序列中选择一个值作为比较的基准值,每趟从数据序列的两端开始交替进行,将小于基准值的元素交换到序列前端,将大于基准值元素交换到序列后端,介于两者之间的位置则成为基准值的最终位置。算法实现:public class QuickSort{public static int[] random(int n){if(n>0){int table[] =new int

2015-03-19 08:46:46 684

原创 冒泡排序

基本思想:比较相邻两个元素的关键字值,如果反序,则交换。若按升序排序,每一趟将被扫描的数据序列中的最大元素交换到最后位置,就像气泡从水里冒出一样。代码实现:public class BubbleSort{public static int[] random(int n){if(n>0){int table[] =new int[n];for(int i=0;itable

2015-03-19 07:54:13 439

转载 Java反射机制

一、什么是反射机制         简单的来说,反射机制指的是程序在运行时能够获取自身的信息。在java中,只要给定类的名字,     那么就可以通过反射机制来获得类的所有信息。 JAVA反射(放射)机制:“程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。但是JAVA有

2015-03-17 20:12:31 351

转载 Jacob解决Word文档的读写问题

Jacob 是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁。使用Jacob自带的DLL动态链接库,并通过JNI的方式实现了在Java平台上对COM程序的调用。Jacob下载的地址为:http://sourceforge.net/project/showfiles.php?group_id=109543&package_id=118368配置:(1

2015-03-16 11:16:44 779

转载 Java中Runnable和Thread的区别

线程的起动并不是简单的调用了你的RUN方法,而是由一个线程调度器来分别调用你的所有线程的RUN方法,我们普通的RUN方法如果没有执行完是不会返回的,也就是会一直执行下去,这样RUN方法下面的方法就不可能会执行了,可是线程里的RUN方法却不一样,它只有一定的CPU时间,执行过后就给别的线程了,这样反复的把CPU的时间切来切去,因为切换的速度很快,所以我们就感觉是很多线程在同时运行一样.你

2015-03-14 16:23:16 329

转载 POJO与Java bean 的区别

POJO 和JavaBean是我们常见的两个关键字,一般容易混淆,POJO全称是Plain Ordinary Java Object / Pure Old Java Object,中文可以翻译成:普通Java类,具有一部分getter/setter方法的那种类就可以称作POJO,但是JavaBean则比 POJO复杂很多, Java Bean 是可复用的组件,对 Java Bean 并没有严格的规

2015-03-13 15:54:22 1689

转载 读懂Java中的Socket编程

Socket,又称为套接字,Socket是计算机网络通信的基本的技术之一。如今大多数基于网络的软件,如浏览器,即时通讯工具甚至是P2P下载都是基于Socket实现的。本文会介绍一下基于TCP/IP的Socket编程,并且如何写一个客户端/服务器程序餐前甜点Unix的输入输出(IO)系统遵循Open-Read-Write-Close这样的操作范本。当一个用户进程进行IO操作之前,它需要调

2015-03-13 11:18:37 405

转载 数据挖掘

数据挖掘什么是数据挖掘    数据挖掘(Data Mining),又称为数据库中的知识发现(Knowledge Discovery in Database, KDD),就是从大量数据中获取有效的、新颖的、潜在有用的、最终可理解的模式的非平凡过程,简单的说,数据挖掘就是从大量数据中提取或“挖掘”知识。     并非所有的信息发现任务都被视为数据挖掘。例如,使用数据

2015-03-13 09:51:37 612

原创 希尔排序

希尔排序:1、将数据序列分为若干组,每组由若干相隔一段距离的元素组成,这段距离称为增量组内采用直接插入排序。2、增量的初始值一般为数据序列长度的一般,以后每趟增量逐渐缩小,最后值为1

2015-03-13 00:05:18 424

原创 直接插入排序

直接插入算法的描述:将第i个元素插入到前i个元素构成的序列前,然后通过比较大小移动i得到适当位置。本人的模拟代码如下:public class InsertSort {public static int[] random(int n){if(n>0){int table[] =new int[n];for(int i=0;itable[i]=(int) (Math.ra

2015-03-12 20:19:27 448

原创 利用递归求Fibonacci序列

递归定义:用一个概念本身直接或间接定义它自己,即自身调用自身。满足条件:1、至少有一条出事定义是非递归的,如1!=1,作为终止条件返回。                   2、由一直函数值逐步地推计算出未知函数值,如用(n-1)!定义n!例子:public class Fibonacci{public static int fib(int n){if(n==0||n==1

2015-03-10 10:44:51 740

转载 在Java中正确使用注释

Java提供了3种类型的注释:单行注释(C++风格)在Java中最简单的注释是单行注释。它以两个正斜杠开始并到行尾结束。例如:// this is a single-line commentx = 1; // a single-line comment after code多行注释(C风格)Java同样提供跨越多行的注

2015-03-09 22:22:33 600

转载 死锁产生的原因及四个必要条件

产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进

2015-03-08 23:59:23 397

原创 基于JDK的RSA算法实现数字签名

数字签名借助RSA算法实现,由于RSA算法的特点是非对称类算法,同时将破解的风险转移到数学难题(分解公因数)上,使其难以破解。由于算法有公钥和私钥,私钥就是私有的,仅自己能够知道,公钥就是公开给别人的。那如果我用我的私钥加密然后你用我的公钥解密,这就能唯一确定这个东西我是发给你的。        这是基于jdk的数字签名,  代码如下:import java.security.KeyFac

2015-03-08 19:36:22 1459

转载 深入理解Proxy机制

动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组);然后再利用您指定的classloader将 class byte加载进系统,最后生成这样一个类的对象,并初始化该对象的一些值,如invocationHandler,以即所有的接口对应的Method

2015-03-08 15:20:35 537

转载 java面试宝典

笔试题之Java基础部分基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他。有些题来自网上搜集整理,有些题来自传智播客学员面试后的反馈,说真的,少数一些网上的面试题,我真怀疑其是否还有存在价值!1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制?可以有多个类,但只

2015-03-08 13:12:15 859 1

网页优化SEO

SEO优化,可以了解了解一下。增长一下网络相关的知识。

2015-12-12

空空如也

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

TA关注的人

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