![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 57
mr_phy
这个作者很懒,什么都没留下…
展开
-
HashMap
HashMap是我们使用非常多的Collection,它是基于哈希表的Map接口的实现,以key-value的形式存在。定义HashMap是继承于AbstractMap。常见问题HashMap特性ashMap可以接受null键值和值,而Hashtable则不能;HashMap是非synchronized;HashMap很快;以及HashMap储存的是键值对“你知道HashMap的工作原理吗?” “你原创 2017-03-15 14:46:36 · 344 阅读 · 0 评论 -
寻找中序遍历下一个节点
题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。思路 可以发现,情况分为两类: - 第一类:给定的节点包含右子树,则下一个节点一定在右子树中。是这个节点右子树的最左子节点。 - 第二类:给定的节点不包含右子树。有两种情况: - 该节点是父节点的左子树,则下一个节点就是这个父节点。 - 该节点是父节原创 2017-05-09 10:40:22 · 378 阅读 · 0 评论 -
多线程笔记
线程和进程区别http://www.ruanyifeng.com/blog/2013/04/processes_and_threads.html计算机的核心是CPU,它承担了所有的计算事务。它就像一座工厂,时刻在运行。假定工厂的电力有限,一次只能供给一个车间使用。也就是说,一个车间开工的时候,其他车间都必须停工。背后的含义是,单个CPU一次只能运行一个任务。进程就好比工厂车间,它代表CPU能处原创 2017-05-09 10:14:39 · 214 阅读 · 0 评论 -
Java异常处理笔记
Java异常错误错误是程序无法处理的错误,表示运行应用程序中较严重问题,大多数错误与代码编写者执行的操作无关,而表示代码运行时JVM出现的问题,例如,Java虚拟机运行错误,当JVM不在有继续执行操作所需的内存资源时,将出现OutOfMemoryError.异常是程序本身可以处理的异常. ps:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。可查异常编译器要求必须处置的异常。 正确的原创 2017-04-20 17:47:14 · 372 阅读 · 0 评论 -
Java面试笔记(Java基础)
Java基础:面向对象和面向过程的区别面向过程是一件事“该怎么做”,面向对象是一件事“该谁来做”。然后那个谁就是对象,他要怎么做是他的事,反正最后一群对象合力把事情做好就行了。Java的四个基本特性(抽象、封装、继承,多态)Overload和Override的区别构造器Constructor是否可被override构造器不能被继承,也不能被重写。但是可以被重载。访问控制符public,protect原创 2017-05-12 10:05:52 · 752 阅读 · 0 评论 -
JVM 如何创建Java对象
对象的建立类初始化当JVM遇到一条new的指令时,首先去检查这个指令是否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经加载,解析和初始化过。如果没有,那么必须先执行类的初始化。划分空间接下来就是要在堆中划分出一块空间,这块空间的大小由类去确定,在类加载以后,一个对象的大小已经是确定的了。对于这个划分,可能存在两种情况: 1. 堆的空间是规整的,已用过的部分在一边,未用过的部原创 2017-05-03 19:07:59 · 337 阅读 · 0 评论 -
JVM : 垃圾回收
GC需要完成的3件事哪些内存需要回收? 什么时候回收? 如何回收?哪些对象需要回收?引用计数器算法给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减一,任何时刻计数器为0的对象就是不可能再被使用的。 这个方法很简单但是不能解决对象之间循环引用的问题。可达性分析算法通过一系列的“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径原创 2017-04-18 22:21:44 · 233 阅读 · 0 评论 -
JVM:内存管理
Java和C++之间有一堵由内存分配和垃圾回收技术所围成的“高墙”,墙外面的人想进去,墙里面的人却想出来。 《深入理解JVM》运行时数据区域可以看到数据区分为方法区,堆,虚拟机栈,本地方法栈,程序计数器。 其中方法区和堆是所有线程共享的数据区,而虚拟机栈和本地方法栈,程序计数器是线程隔离的数据区程序计数器程序计数器一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。字节码解原创 2017-04-18 20:53:38 · 255 阅读 · 0 评论 -
归并排序
综述归并排序是建立在归并操作上的一种有效的排序算法。这个算法是分治法的一个典型的应用。1.有序数组合并有序数组合并非常简单,只要比较两个数组中最小的数,谁小就取谁。然后把取了的数删除,继续比较。如果一个数组为空,则取另一个数组的元素。 这个方法时间复杂度为O(n)public void MemeryArray(int[] a,int n,int[] b,int m,int c[]){ in原创 2017-04-13 12:13:03 · 309 阅读 · 0 评论 -
剑指offer第五题
题目用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路本来想的很简单,从stack1往stack2中一倒就把“后进先出”倒成了“先进先出”。 但是这个思路有一个问题,就是stack2里面有元素的时候。本来他应该先出的,反倒在stack2中先进,变成了后出 所以应该把stack2分成两种情况 一种它为空,用原来的思路,另一种它不为空,就直接从stack2里面原创 2017-04-03 11:33:52 · 355 阅读 · 0 评论 -
剑指offer第四题
题目输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路通过root结点可以把中序遍历分成两部分。可以知道左子树的个数和右子树的个数。从而求出前序遍历和中序遍历相对应的左子树和右子树。 并通过递归求出。 递归方原创 2017-04-02 22:43:41 · 646 阅读 · 0 评论 -
剑指offer第三题
题目输入一个链表,从尾到头打印链表每个节点的值思路建立一个栈,先把数据存到栈里面。Code/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int val) {* this.val = val;* }*原创 2017-04-02 21:02:19 · 311 阅读 · 0 评论 -
剑指offer第二题
题目请实现一个函数,将一个字符串中的空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路最直观的做法是从头往后开始扫描,但是这样复杂度为O(n^2) O(n)的做法是从后往前开始复制和替换。 先求出替换后的字符串大小,然后用两个指针(index)从后往前复制,如果遇上空格,直接替换为%20Codepublic class原创 2017-04-02 19:42:32 · 435 阅读 · 0 评论 -
人员信息管理系统
基本描述这个系统主要实现基本的业务功能:增加用户,修改用户,删除用户,查询单个用户,查询全部用户和退出系统的功能。 工厂模式,代理模式,MySQL数据库连接方式数据库连接方式:JDBC程序结构框架表的信息id int ;name varchar(50) ; sex varchar(10) ; birthday date基本类User类定义user包含的信息。定义get和set信息的方法。Da原创 2017-04-02 17:43:34 · 6099 阅读 · 0 评论 -
JAVA反射机制
反射机制是什么?反射机制是在运行状态中们对于任意个一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。反射机制能做什么?在运行时判断任意一个对象所属的类在运行时构造任意一个类的对象;在运行时判断任意一个类所具有的成员变量和方法在运行时调用任意一个对象的方法生成动态代理反射机原创 2017-06-23 16:58:47 · 315 阅读 · 0 评论