自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(29)
  • 资源 (6)
  • 收藏
  • 关注

原创 源码分析继承Thread和实现Runnable来创建线程

创建线程的方式有三种,此处不再赘述,在另一篇文章中已经写过,此处从源码的角度来分析通过继承Thread和通过实现Runnable来创建线程的过程1. 调用thread.start()和thread.run()的区别Thread.java类中的start()方法通知“线程规划器”此线程已经准备就绪,等待调用线程对象的run()方法,就是让系统安排一个时间来调用Thread中的run()方法,也就是使得

2017-10-30 03:14:06 446

转载 Java反射机制深入详解

Java反射机制深入详解 一.概念  反射就是把Java的各种成分映射成相应的Java类。  Class类的构造方法是private,由JVM创建。  反射是java语言的一个特性,它允程序在运行时(注意不是编译的时候)来进行自我检查并且对内部的成员进行操作。例如它允许一个java的类获取他所有的成员变量和方法并且显

2017-10-22 22:43:43 275

原创 关于char, wchar_t, TCHAR, _T,L,TEXT,_TEXT,LPSTR,LPCSTR,PWSTR,PCWSTR,LPTSTR,LPCTSTR的区别

#ifdef UNICODE typedef wchar_t TCHAR; #else typedef unsigned char TCHAR; #endif typedef unsigned char CHAR; typedef unsigned wchar_t W

2017-10-18 21:50:41 596

原创 内存断点和硬件断点

1. 内存断点A) Windows系统中的内存采用分页机制,内存模型如下所示:32位逻辑地址=16位段选择器+偏移地址16位段选择器=13位全局描述符表/局部描述符表索引+1位GDT/LDTflag+2位的访问控制权限由16位得到段选择器索引到全局描述符表得到64位的段描述符,段描述符中包含了线性段基址线性段基址+偏移地址(逻辑地址后半段)得到线性地址空间的一个32位线性地址32位线性地址=

2017-10-15 18:41:32 6501

转载 Java wait(),yield(),sleep()的区别

1、sleep() 使当前线程(即调用该方法的线程)暂停执行一段时间,让其他线程有机会继续执行,但它并不释放对象锁。也就是说如果有synchronized同步快,其他线程仍然不能访问共享数据。注意该方法要捕捉异常。 例如有两个线程同时执行(没有synchronized)一个线程优先级为MAX_PRIORITY,另一个为MIN_PRIORITY,如果没有Sleep()方法,只有高优先级的线

2017-08-11 23:47:51 285

原创 线程状态与停止

一、线程状态1.创建线程--->就绪状态-->运行状态-->终止 ^ | | | | v -阻塞状态-1)创建线程对象进入新生状态2)通过start进入就绪状态3)run()进入运行状态4)如果出现等待资源,或者sleep()、join()、yield()等则进入

2017-08-11 23:38:16 419

原创 创建多线程的三种方式

创建Java多线程的方式:1.实现Runnable接口+run(): 启动:使用静态代理模式 1.创建真实角色 2.创建代理角色Thread+引用 3.代理角色.start()2.继承Thread+run() 启动:创建子类对象+对象.start()在以上两种方式中推荐使用第一种方式,避免单一继承、便于共享资源3.通过实现Calla

2017-08-11 23:17:11 330

转载 IO流总结

Java IO流学习总结 <div class="postBody"> <div id="cnblogs_post_body"><p>Java流操作有关的类或接口:</p>Java流类图结构: 流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性

2017-08-11 09:38:06 324

原创 匿名内部类

总结: 匿名内部类也就是没有名字的内部类。 正因为没有名字,所以匿名内部类只能使用一次,它通常用来简化代码编写。 但使用匿名内部类还有个前提条件:必须继承一个父类或实现一个接口。代码示例:public class NI_Ming_InnerClass { public Description buildDescription(String s,String s2)

2017-08-10 22:40:07 246

原创 在内部类中生成对外部类的引用

在内部类中使用 外包类.this 生成对外部类的对象的引用 备注:在拥有外包类对象之前是无法创建内部类对象的,因为内部类对象需要指向外包类对象的引用.public class ThisAndNew { public class Inner{ public ThisAndNew outer(){ /** * 在内部类中使用

2017-08-10 22:33:29 486

原创 静态内部类

定义:被关键字static修饰的成员内部类即为静态内部类静态内部类的特点:静态内部类不能直接访问外部类中的非静态变量。如果外部类的静态成员与内部类成员名称相同,通过“外部类名.成员”访问外部类的静态变量。创建静态内部类的对象时,可直接创建 “对象名=new”。代码示例:public class Static_neibu_class { private int a=99;

2017-08-10 22:25:18 251

原创 成员内部类

定义:成员内部类直接定义在外部类的内部,相当于成员变量的位置,可以使用任意访问控制符。 成员内部类中定义的方法可以直接访问外部类中的数据,不受外部类访问控制符的影响。创建成员内部类对象:内部类 对象名=外部类.new 内部类()代码演示:public class Member_neibu_class { private int a=99; public class Inner{

2017-08-10 22:12:47 353

原创 方法内部类

定义:方法内部类就是定义在外部类的方法中的类,只在该方法内可以调用注意: 1.由于方法内部类不能在外部类的方法(指的是包含着该内部类的方法)以外的地方使用,所以不能使用 访 问 控 制 符 和 static修饰符 2.方法的返回类型不能是内部类,但可以是内部类的父类,当返回内部类对象的引用时,会进行向上转型代码:public class Fangfa_neibu_class

2017-08-10 22:04:49 910

转载 枚举类型

枚举(enum)类型是Java 5新增的特性,它是一种新的类型,允许用常量来表示特定的数据片断,而且全部都以类型安全的形式来表示。 1、常量的使用      在JDK1.5之前,我们定义常量都是:public static fianl….。现在好了,有了枚举,可以把相关的常量分组到一个枚举类型里,而且枚举提供了比常量更多的方法。package com;public enum Color {

2017-08-09 22:38:10 312

原创 泛型

使用泛型的优点:使用Java的泛型可以在编译时检测出错误。省心,取出元素时不用类型 List<String> list=new ArrayList<>();//list.add(1);编译时类型检查出错误list.add("so easy");list.get(0);//取出时不再需要类型转换使用泛型的一些限制:不能使用 new E()以及new E[]; 泛型存在于编译时,一旦编译器

2017-08-09 22:07:33 233

原创 Iterator原理及实现

Iterator的作用:Iterator用于遍历集合中的元素,适用于不知道集合内部结构的情况。用户不再与集合类交互,而是与Iterator交互,其清楚知道集合类的内部状态,通过控制iterator达到遍历集合的目的。Java API中Iterator接口public Interface Iterator<E>{ boolean hasNext();    Object next();

2017-08-08 19:48:51 2225

原创 Java异常处理

注意: * 1.当程序可能出现多种异常,而且又要为这些异常一一处理时,后面依次列写catch语句块 * 2.但所列写的catch应该满足从子类到父类的异常处理,如上面,第一和二两个异常都是Exception的子类 * 3.finally语句跟在catch语句后面,用来实行一些出现异常后要进行的处理 * 4.处理运行时异常时,采用逻辑去合理规避,同时辅助try_catch

2017-08-07 00:12:35 264

原创 排序算法---外部排序

算法设计:可以使用外部排序对大容量数据进行排序。数据量过大,存储于外部文件,数据不能完全加载到内存中。1.从文件中读取一固定数目的数据到数组,对数组排序,将排好序的数组作为一个数据段输出到一个临时文件,重复上述过程,直到源文件中数据读取完2.将存储了数据段的文件中一般的数据段复制到一个临时文件,然后对着两个文件的数据段归并排序,每两个数据段归并形成一个大的数据段存储于一个文件中,重复2,直到只有

2017-08-03 13:46:52 1467

原创 排序算法---堆排序

算法设计:堆排序使用的是二叉堆。它首先将所有元素添加到一个堆上,然后不断移除最大元素以获得一个排好序的线性表。算法时间复杂度为O(nlogn)二叉堆: *形状属性:一棵完全二叉树 *堆属性:每个节点大于或等于它的任意一个孩子代码实现:实现二叉堆:public class Heap<E extends Comparable<E>> { private ArrayList<

2017-08-03 13:22:53 236

原创 排序算法---快速排序

算法设计:该算法在数组中选择一个称为主元的元素,将数组分为两部分,使得第一部分元素都小于或等于主元,第二部分都大于主元。然后对两个部分递归的应用快速排序。快速排序算法时间复杂度为 O(nlogn)实例分析:初始数组: 5,2,9,3,8,4,0,1,6,7主元: 5初始数组被分区: 4,2,1,3,0,5,8,9,6,7 a) 4,2,1,3,0 b) 8,

2017-08-03 13:09:22 379

原创 排序算法---归并排序

算法设计:归并排序算法将数组分为两半,对每部分递归的应用归并排序。在两部分都排好序后,对他们进行归并。算法时间复杂度为O(nlogn)public static void mergeSort(int[] list){ if(list.length>1){ mergeSort(list[0....list.length/2]); mergeSort(list[

2017-08-03 12:50:40 256

原创 排序算法---冒泡排序

算法设计:冒泡排序算法多次遍历数组,在每次遍历中连续比较相邻的元素,如果元素没有按照顺序排列则互换它们的值,否则,保持不变,较小的值逐渐浮向顶部,较大的值逐渐沉下底部。算法时间复杂度为O(n^2)时间复杂度分析:在最差情况下,冒泡排序算法需要进行n-1次遍历,第一次要进行n-1次比较,第二次要进行n-2次比较 T(n)=(n-1)+(n-2)+...+2+1 =O(n^2)

2017-08-03 12:30:22 243

原创 排序算法---插入排序

算法设计:插入排序重复地将新的元素插入到一个排好序的子线性表中 算法时间复杂度为O(n^2)算法描述如下:for(int i=1;i<list.length;i++){ 将list[i]插入已经排好序的子线性表中,这样list[0...i]也是排好序的}算法时间复杂度分析:插入排序算法重复的将一个新的元素插入到一个排好序的部分数组中,直到整个数组排好序。在K次迭代中,为了将一个元素插入到

2017-08-03 12:19:58 334

原创 排序算法---选择排序

算法设计:选择排序算法是在线性表中找到最小的元素,并将其与第一个元素交换,然后在剩余的线性表在找到最小的元素,将其与剩余的线性表的第一个元素交换,一直重复直到线性表只剩下一个元素为止 算法时间复杂度为 O(n^2)算法时间复杂度分析:对于第一次迭代,比较次数为n-1,第二次为n-2,依次类推,选择排序的时间复杂度T(n)=(n-1)+c+(n-2)+c+....+2+c+1+c =O(n

2017-08-03 12:02:52 402

转载 看懂Java类图

如何看java类图标签: uml面向对象java类图设计2015-10-23 22:09 3281人阅读 评论(0)收藏举报本文章已收录于:分类: Java se基础的积累(22) 作者同类文章X箭头:指向父类或接口。指向依赖物。指向子元素。 

2017-06-01 16:37:46 9846

转载 javac编译原理浅谈

Javac编译原理java源代码(符合语言规范)-->javac-->.class(二进制文件)-->jvm-->机器语言(不同平台不同种类)如何让java的语法规则适应java虚拟机的语法规则?这个任务由javac编译器来完成java语言规范转换成java虚拟机语言规范。编译流程:流程:词法分析器:将源码转换为Token流将源代码划分成一个个Tok

2017-06-01 16:24:14 712

原创 Java序列化技术浅谈

一、序列化和反序列化的含义 序列化:将一个对象转换为一串二进制表示的字节数组,通过保存或者转移(传输)这些字节数据来达到持久化的目的,序列化的其实是对象在某一时刻的状态(冻结对象状态)。 反序列化:序列化的逆过程,将这些字节数据重新构造成对象,反序列化出来的是一个,反序列化就是将这一对象状态解冻。二、为什么要进行序列化当两个进程间进行通讯时可以相互发送任何资源(数据),这些资源包括图片、

2017-05-23 14:29:04 346

原创 Java反射机制==>运行时使用反射分析对象

1、利用反射机制可以查看在编译时不清楚的对象域package 反射机制;import java.util.ArrayList;public class ObjectAnalyzerTest { public static void main(String[] args) { ArrayList<Integer> s=new ArrayList<>(); for(

2017-05-16 21:08:27 572

原创 JAVA的反射机制==>用反射分析类的实现

反射的概念:能够分析具体类的能力的程序称为反射(JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。)反射机制的作用: 1、在程序运行中分析类的能力 2、在运行中查看对象1、反射机制==>检查类的结构:预备知识:java.lang.r

2017-05-15 22:56:05 954

netty框架 jar包

Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

2017-10-11

MySQL驱动jar包

MySQL驱动jar包,Java JDBC数据库编程所需的数据库驱动库

2017-10-11

AES加密算法rijndael

AES加密算法rijndael,整个rijndael算法加密过程,秘钥编排等一个flash就搞定,简单直观,使用时直接拖进浏览器即可打开。

2017-10-11

PE文件查看工具PEview

PE文件查看神器,文件结构解析清晰,方便查看PE文件各个结构,上手快。

2017-10-11

逆向工具OllyDBG

软件逆向工具,OllyDBG, OLLYDBG,一个新的动态追踪工具,将IDA与SoftICE结合起来的思想,Ring 3级调试器,非常容易上手。

2017-10-11

西电网络与信息安全学院《信息安全数学基础》专业课完整课件

西安电子科技大学信息安全专业基础课课件,压缩包内容包含 整除、同余、二次剩余、原根、群、环、域、多项式、同余方程等多项知识点内容。

2017-10-11

空空如也

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

TA关注的人

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