面试
TheBiggestMouse
如果你想拥有你从未有过的东西,那么,你必须要做你从未做过的事情!
展开
-
JDK和JRE有什么区别?
一.什么是JDKJDK的全称是Java Development Kit,可以认为是java开发者工具包,是Sun公司提供的一套用于java应用程序的开发包.它提供了编译运行java程序所需要的各种工具和资源.包括java编译器,java运行时环境,以及常用的java类库等.二.什么是JREJRE的全称是Java Runtime Environment,也就是java运行时环境.从字面上理解就...原创 2019-08-29 20:17:01 · 206 阅读 · 0 评论 -
java求一颗二叉树从根到叶子节点之和的最大值及二叉树的遍历
求一颗二叉树从根到叶子节点之和的最大值比如:12 34 1 6分支分别是:1+2+4=71+2+1=41+3+6=10所以最大值是10大体思路将根到叶子节点所有路径的值求出来,然后分别计算每条路径的和进行比较,得出最大值,第一步: 求出根到叶子节点路径的集合public static void findPath(Node node, List<List&...原创 2019-09-29 12:49:56 · 1998 阅读 · 0 评论 -
求一个整形数组中差值为n的组合
题目// 求一个整形数组中差值为n的组合// 比如: [1,2,3,4,5,3] 差值1 组合有[1,2] [2,3] [3,4] [4,5]// class Pair{// int x;// int y;// }分析任意两两相比的结果符合差值,使用两层for循环进行比较,符合条件的就放入Pair对象中,题目中给的数组有两个三,但是比较中并没有因为多一个三而出现重复的组合,...原创 2019-09-26 20:59:43 · 822 阅读 · 0 评论 -
多线程阿里笔试题1
题目下面addOne()函数是否线程安全,请回答原因public class Test { private volatile int value = 0; void addOne(){ ++value; }}测试代码 public static void main(String[] args) throws InterruptedExceptio...原创 2019-09-26 20:35:04 · 321 阅读 · 0 评论 -
深入理解Integer的创建和拆装箱
背景今天做了一次阿里的笔试题,其中一道题是关于Integer的.以前研究过Integer的源码,但是突然间看到这题时候,自己明白,但是感觉不知道从何处下手说.所以写下这篇文章让在总结一下,加深下印象.题目输出打印结果并说明原因. public static void main(String[] args) { Integer a = new ...原创 2019-09-26 17:39:03 · 318 阅读 · 0 评论 -
并发编程与进程和多线程的关系及如何创建多线程
一. 进程和线程 几乎所有的操作系统都支持同时运行多个任务,一个任务通常就是一个程序,每个运行中的程序就是一个进程,当一个 程序运行时,内部可能包含了多个顺序执行流,每个顺序执行流就是一个线程.一定的独立功能,进程是系统进行资源分配 和调度的一个独立单位.进程的特点:独立性: 进程是系统中独立存在的实体,它可以拥有自己独立的资源,每一个进程都拥有自己私有的地址空间,在没有...原创 2018-04-21 18:06:15 · 199 阅读 · 0 评论 -
深入解析HashMap底层源码
一. HashMap的类关系图二. HashMap简介这个简介之前先附张图.这回我们结合图片看HashMap长度是可变的HashMap没有顺序,在图片上我们可以看出打印出来的顺序和添加的顺序不一样.实际上,随着HashMap中的键值对越来越多的时候,打印的顺序也也是会发生变化的.HashMap中的key值是不可重复的,value值是可以重复的线程不安全特点:键值对存储结构:...原创 2019-09-05 12:25:45 · 1123 阅读 · 1 评论 -
Java容器之HashSet
一. HashSet的类关系图二. HashSet简介HashSet是Set接口的典型实现, 大多数时候使用Set集合时就是使用这个实现类.HashSet按Hash算法来存储集合中的元素,因此具有很好的存取和查找性能.HashSet无序 HashSet不能保证元素的排列顺序,顺序可能与添加的顺序不同,顺序也有可能发生变化.线程不安全 HashSet不是线程同步的,如果多个线程同时修改一...原创 2019-09-04 15:10:50 · 1115 阅读 · 0 评论 -
java容器都有哪些?
什么是容器?容器是指用以容纳物料并以壳体为主的基本装置。摘自: 百度百科java容器类类库的用途是"保存对象"。摘自: “Thinking in Java”.Java集合类是一种特别有用的工具类,可以用于存储数量不等的对象,并可以实现常用的数据结构,如栈,队列等.Java集合就像一种容器,可以把多个对象(实际上是对象的引用,但习惯上都称对象) “丢进” 该容器中. 摘自: “疯狂Java讲...原创 2019-09-03 20:50:29 · 18889 阅读 · 3 评论 -
Java容器之LinkedList
一. LinkedList的类关系图二.LinkedList的简介根据类关系图我们可以看到LinkedList实现了List接口,我们可以把它当做一个list容器直接使用,我没有一 一的对比ArrayList中的方法在LinkedList是否都有,但是大部分都是一样的.我们还可以看到LinkedList还实现了Deque接口(Deque代表双端队列,Queue代表了队列),我们还可以把它...原创 2019-09-03 20:42:01 · 1096 阅读 · 2 评论 -
Java容器之ArrayList
一. ArrayList的类关系图二. 关于ArrayList,我们从以下几个方面进行分析有无顺序长度是否可变元素是否可重复底层实现线程安全性优点,特性三. 分析过程创建ArrayList,赋值,然后断点查看执行过程从这张图片中我们可以看到刚刚创建的ArrayList是Object类型的数组.并且长度为0添加数据之后,数组的长度变了,类型没有变还是Object类型...原创 2019-09-03 15:53:53 · 2423 阅读 · 0 评论 -
java中操作字符串都有哪些类,他们之间有什么区别?
java中操作字符串的类有哪些?StringStringBufferStringBuilder区别我们可以先看一下这几个类的继承关系图从类的继承关系上来开的话,String和StringBuffer,StringBuilder是没有任何关系的,但是StringBuffer和StringBuilder的继承关系时一样的.然后我们在通过断点看一下他们几个类创建出来的对象都是什么...原创 2019-09-02 18:15:51 · 24632 阅读 · 13 评论 -
String属于基础的数据类型么?
八大基础数据类型有哪些?整形:byte 一个byte类型在内存中占8位,表示数的范围是-128~+127short 16位,-32768~32767int 32位,-2147483648~2147483647long 64位,(-263)~(263)浮点型floatdouble字符型char布尔型boolean小结所以String类型不属于基础数据类型,但是为什么会...原创 2019-09-02 13:17:57 · 5855 阅读 · 0 评论 -
java中的Math.round(-1.5)等于多少?
什么是Math.round()?round()是Math类中的一个四舍五入的方法.Math类中对这个方法有重载,可以传入一个double类型的参数返回的是一个long类型的数值,也可以传入一个float类型的参数返回的是一个int类型的数值.计算规则这个基础不好的同学不建议看源码,一个是源码实现中使用了一些位运算,这个还好说,另一个原因就是round()方法中调用了一些使用native修饰的...原创 2019-09-02 11:19:01 · 17314 阅读 · 4 评论 -
final关键字在java中有什么作用?
什么是final?final是java中的关键字,终态修饰符.可以修饰java类,可以修饰java类中的属性,可以修饰java中的方法.final修饰类的时候如果java中的类被final关键字修饰,那么这个类是不能够被继承的.final修饰属性的时候如果java中的属性被final关键字修饰,那么这个属性是不能够被修改的.final修饰方法的时候如果java中的方法被final关键...原创 2019-09-02 10:17:37 · 2620 阅读 · 0 评论 -
两个对象的hashCode()相同,则equals()也一定为true么?
什么是hashCode()?hashCode()方法是Object类中的一个方法,但是使用native关键字修饰,我们直接在源码中是什么都看不到的.public native int hashCode();native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以...原创 2019-09-02 10:07:49 · 4797 阅读 · 3 评论 -
java中==和equals的区别是什么?
我原创 2019-09-02 09:44:17 · 37156 阅读 · 26 评论 -
java 将字符串里面的字符按照出现的频率降序排列
题目//给定一个字符串,将字符串里面的字符按照出现的频率降序排列。//例1:输入:“cbbaaa”,输出:“aaabbc”//例2:输入:“cccaa”,输出:“cccaa”//例3:输入:“aaAAA”,输出:“AAAaa”思路首先需要将字符串中的的字符出现的频率进行分类记录,然后将字符串中字符按照出现的频率进行重组,保证同一个字符连续出现,题中没有不连续的字符(如:sdfdsa...原创 2019-09-29 14:12:15 · 3681 阅读 · 3 评论