07 2017 档案

摘要:直接上代码了,不解释,很简单的,主要考虑边界值问题 阅读全文
posted @ 2017-07-23 14:22 Cloud_strife 阅读(534) 评论(0) 推荐(0)
摘要:先上第一种 两种方法。第一种,是用位运算,将1每次左移,和数字进行&运算,如果成功,则返回1. 第二种,将整数通过方法转换为二进制数,然后统计其中1的数量 第二种 阅读全文
posted @ 2017-07-23 13:15 Cloud_strife 阅读(4243) 评论(0) 推荐(0)
摘要:对于Java中值传递和引用传递,主要有两种情况。 如果传递类型是基本数据类型,则传递的是值得拷贝。 如果传递类型是引用数据类型,则传递的是引用类型在内存地址的拷贝。 基本数据类型包括:int,float,double,Boolean,char,byte,short,long。 引用数据类型包括:类, 阅读全文
posted @ 2017-07-21 16:52 Cloud_strife 阅读(137) 评论(0) 推荐(0)
摘要:java因为其特殊性,对它的数据结构。可分为如下: http://www.2cto.com/kf/201506/412305.html Collection,List,Set,Map都是接口。 接下来按照顺序,依次对每一个集合接口进行说明。 ArrayList: 是线程不安全的。默认容量为20,每次 阅读全文
posted @ 2017-07-21 16:50 Cloud_strife 阅读(194) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/lu_ca/article/details/52184423 这一篇,讲解的非常好。 Java的异常分为两类,Throwable是最基本的,它的下面分为Error和Exception。 Error主要指JVM运行时错误,内存溢出,栈溢出,JVM奔溃等, 是属 阅读全文
posted @ 2017-07-21 16:50 Cloud_strife 阅读(170) 评论(0) 推荐(0)
摘要:剑指offer的第八题。 题目描述 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。 NOTE:给出的所有元素都大于0,若数组大小为 阅读全文
posted @ 2017-07-21 14:34 Cloud_strife 阅读(127) 评论(0) 推荐(0)
摘要:用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。 阅读全文
posted @ 2017-07-20 17:36 Cloud_strife 阅读(820) 评论(0) 推荐(0)
摘要:剑指offer的面试题7.用两个栈来实现队列 #include <stdio.h>#include <string.h> #define MAX 1000typedef struct Stacks{ int date[MAX]; int top;}Stack; Stack stack1,stack2 阅读全文
posted @ 2017-07-20 16:55 Cloud_strife 阅读(732) 评论(0) 推荐(0)
摘要:复习C语言数组队列 #include <stdio.h>#include <string.h> #define MAX 1000 typedef struct Queues{ int date[MAX]; int front; int rear;}Queue; Queue queue; void C 阅读全文
posted @ 2017-07-20 16:15 Cloud_strife 阅读(2536) 评论(0) 推荐(1)
摘要:创建了一个C语言链表和栈。包含输入数据在链表中,保存在栈里,再从栈里读取出来。 #include <stdio.h>#include <string.h> #define MAX 1000 typedef struct node{ int value; struct node *next;}Node 阅读全文
posted @ 2017-07-20 14:35 Cloud_strife 阅读(254) 评论(0) 推荐(0)
摘要:JVM类加载机制中,加载阶段主要由类加载器对类进行加载,然后读取类的二进制字节流。一个类的确定由类的名称和类的加载器唯一标识。但如果同一个类,一个由自定义加载器加载,一个由启动类加载器加载。则两个类在判定时会提示不是同一个对象。这是由于不同的类加载器所造成的。 对于JVM中,主要有以下加载器。启动类 阅读全文
posted @ 2017-07-18 13:40 Cloud_strife 阅读(294) 评论(0) 推荐(0)
摘要:JVM类加载总共有7个阶段。加载->验证->准备->解析->初始化->使用->卸载。主要需要了解的为准备阶段,初始化阶段。下面分别对此两个阶段进行解析。 初始化阶段: 初始化分为主动引用和被动引用。主动引用包括: (1)创建类的实例 (2)访问类的静态变量 (3)访问类的静态方法 (4)反射 (5) 阅读全文
posted @ 2017-07-17 10:31 Cloud_strife 阅读(156) 评论(0) 推荐(0)
摘要:JAVA内存回收算法,主要采用的方式有两种,一种是标记计数器方式,一种是根目录搜索法。 标记计数器方式,是对每一个对象如果被引用,则标记计数器加1,解除引用,则标记计数器减1。当一个对象标记计数器为0时,则回收此对象。但这种方式存在问题,假如两个对象存在交叉引用,则对象值为null时,则无法回收此对 阅读全文
posted @ 2017-07-16 19:26 Cloud_strife 阅读(163) 评论(0) 推荐(0)
摘要:Java反射是在代码运行时,通过反射新建一个类的对象,或者是获取一个类的变量,方法等。 通过Class.forName()获取Class<?>对象,然后调用newInstance新建对象。新建对象后,就可以通过for循环现获取所有的方法,构造函数等。然后循环输出即可。 也可以通过反射,实例化一个接口 阅读全文
posted @ 2017-07-14 09:23 Cloud_strife 阅读(110) 评论(0) 推荐(0)
摘要:String,StringBuffer是线程安全的,StringBuilder是线程不安全的。 对于String,每次给它赋新的值,会重新创建一个String对象,如果时间长了,会导致内存占用过多,JVM采用GC进行内存回收。 而StringBuffer和StringBuilder每次赋新的值时,不 阅读全文
posted @ 2017-07-13 16:04 Cloud_strife 阅读(114) 评论(0) 推荐(0)
摘要:简单来说。 对于Java中值传递和引用传递,主要有两种情况。 如果传递类型是基本数据类型,则传递的是值得拷贝。 如果传递类型是引用数据类型,则传递的是引用类型在内存地址的拷贝。 基本数据类型包括:int,float,double,Boolean,char,byte,short,long。 引用数据类 阅读全文
posted @ 2017-07-13 16:03 Cloud_strife 阅读(104) 评论(0) 推荐(0)
摘要:JAVA运行时,分为如下几个区域。JAVA栈,本地方法栈,程序计数区,堆区,方法区。在以上五个区域中,堆区和方法区是线程共享的。其他的区为线程隔离的。 以下分别对各个区进行解释: 程序计数区:线程是通过轮流CPU调用来进行执行的,同一时刻,只有一个线程被CPU调用。为了保证每一个线程在调用完毕后能够 阅读全文
posted @ 2017-07-13 13:48 Cloud_strife 阅读(159) 评论(0) 推荐(0)
摘要:Lock锁分为以下几种,可重入锁,非可重入锁,公平锁,非公平锁,读写锁。 可重入锁:synchronized和ReentrantLock锁均为可重入锁。当在一个获得了锁的方法中,调用另外一个需要获得锁的方法时,如果此时为可重入锁,则正常运行。如果为非可重入锁,则系统报错。 公平锁:一个线程在等待着另 阅读全文
posted @ 2017-07-12 10:20 Cloud_strife 阅读(240) 评论(0) 推荐(0)
摘要:JVM中,分为JVM Client模式,JVM Server模式。两者区别并不大,但serve启动模式启动较慢,但一旦运行起来后,在hash和method call方面的效率,比Client模式效率高数十倍。 线程在读取数据时,首先从主内存中读取数据,保存在本地工作内存中,然后对数据进行修改,修改完 阅读全文
posted @ 2017-07-11 16:43 Cloud_strife 阅读(141) 评论(0) 推荐(0)
摘要:最近在准备工作面试的问题,所以找了很多的资料,和自己整理了相关可能会考到的。每天争取发一篇。 1.多线程 实现方法: 一、继承Thread,重写run方法,调用start即可。 Class Thread1 extends Thread{ Public void run(){ //添加代码 } } P 阅读全文
posted @ 2017-07-11 16:41 Cloud_strife 阅读(272) 评论(1) 推荐(0)