
Java基础知识整理
文章平均质量分 83
sheshouzuomeiyou
这个作者很懒,什么都没留下…
展开
-
HashMap和Hashtable的区别
HashMap和Hashtable的比较是Java面试中的常见问题,用来考验程序员是否能够正确使用集合类以及是否可以随机应变使用多种思路解决问题。HashMap的工作原理、ArrayList与Vector的比较以及这个问题是有关Java 集合框架的最经典的问题。Hashtable是个过时的集合类,存在于Java API中很久了。在Java 4中被重写了,实现了Map接口,所以自此以后也成了Java...转载 2018-09-11 14:19:50 · 256 阅读 · 0 评论 -
常见排序算法实现
冒泡排序 package sort; /** * 冒泡排序: * * 1.比较相邻的元素。如果第一个比第二个大,就交换它们两个; * 2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数; * 3.针对所有的元素重复以上的步骤,除了最后一个; * 4.重复步骤1~3,直到排序完成。 * * 最佳情况:T(n) = O(n) 最差...原创 2019-03-20 15:55:25 · 159 阅读 · 0 评论 -
Java并发编程的艺术——并发编程的挑战
并发编程的目的是为了让程序运行的更快。在进行并发编程时,如果希望通过多线程执行任务让程序运行的更快,会面临非常多的挑战,比如上下文切换的问题、死锁的问题,以及受限于硬件和软件的资源限制问题。 上下文切换 单核处理器也支持多线程执行代码,CPU通过给每个线程分配CPU时间片来实现这个机制。 CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务,在切换前会保存上一个任务的...原创 2019-03-20 10:37:15 · 155 阅读 · 0 评论 -
计算机网络常考面试题
1.OSI,TCP/IP,五层协议的体系结构,以及各层协议 1)OSI分层:应用层,表示层,会话层,运输层,网络层,数据链路层,物理层 2)五层协议:应用层,运输层,网络层,数据联络层,物理层 3)TCP/IP分层(四层):应用层,运输层,网际层,网络接口层 每一层的作用如下: 七层协议 其中表示层和会话层用途如下: 表示层:信息的语法、语义以及它们的关联,如加密解密、转换翻译、压缩解压缩; 会...转载 2019-03-07 22:18:34 · 311 阅读 · 0 评论 -
关于volatile的理解
http://www.importnew.com/24082.html 这篇文章介绍的很详细,可以参考原创 2019-02-27 16:33:23 · 169 阅读 · 0 评论 -
堆和栈
在Java中,数组存储对象的原始值(int,char,…)或引用(也称为指针)。 使用“new”创建对象时,会在堆中分配一个内存空间并返回一个引用。对于数组也是如此,因为数组是Java中的对象。 1.单维数组 int arr[] = new int [3]; int[] arr 只是对三个整数数组的引用。如果创建一个包含10个整数的数组,则他是相同的 - 分配一个数组并返回一个引用。 ...翻译 2018-09-11 10:13:02 · 169 阅读 · 0 评论 -
字符串不变性及字符串的一些面试题
1.声明一个字符串 String s = "abcd"; 变量s存储字符串对象的引用,如下所示。 2.将一个字符串变量分配给另一个字符串变量 String s2 = s; 3.Concat字符串 当我们将字符串“ef”连接到s时 s = s.concat("ef"); s存储新创建的字符串对象的引用,如下所示。 总之,一旦在内存(堆)中创建了一个字符串,就...翻译 2018-09-11 09:09:03 · 339 阅读 · 0 评论 -
HashCode()与equals()
https://blog.youkuaiyun.com/lijiecao0226/article/details/24609559 写的很好,必看!原创 2018-09-12 16:11:25 · 169 阅读 · 0 评论 -
HashMap的工作原理
HashMap的工作原理 简单总结: HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,然后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap是在bucket中储存键对象和值对象,...原创 2018-09-11 14:36:41 · 185 阅读 · 0 评论 -
多线程相关面试题理解
什么是线程?它与进程有什么区别?为什么要使用多线程 1.线程是指程序在执行过程中,能够执行程序代码的一个执行单元。 2.进程是指一段正在执行的程序。 3.线程是程序执行的最小单元。 4.一个进程可以拥有多个线程,各个线程之间共享程序的内存空间(代码段,数据段和堆空间)及一些进程级的资源,但是各个线程拥有自己的栈空间。 使用多线程的好处: 1)使用多线程可以减少程序的响应时间。单线程不同操作之间都有...原创 2019-03-12 14:50:09 · 273 阅读 · 0 评论