Java
天射手座
万丈高楼平地起,勿在浮沙筑高台。
展开
-
Queue接口的offer方法与add方法的相同点和不同点
相同点:在成功执行操作的前提下,都可以实现向队列末端中添加一个元素不同点:当操作不成功时(列队已满),offer方法返回false,add方法返回异常...原创 2019-12-28 17:07:26 · 594 阅读 · 0 评论 -
重温经典Java核心技术-卷1 构造器的作用
重温经典Java核心技术-卷1 构造器的作用构造器无参数的构造器构造器构造器与类同名,在构造类的对象时,构造器会运行,,以便将实例域初始化为所希望的状态。无参数的构造器很多类都包含一个无参数构造器,当类中没有编写构造器时,系统会提供一个无参数构造器,类中的实例(对象、数值、布尔值)会被设置为以下默认值类中的实例默认值对象null数值0布尔值fals...原创 2019-12-13 13:07:29 · 207 阅读 · 0 评论 -
res.add(new ArrayList<String>(item)); 和 res.add(item)区别
item定义:ArrayList item=new ArrayList();共同点:都是向res这个ArrayList中填加了一个名为item的链表不同点:res.add(new ArrayList(item))开辟一个独立地址,地址中存放的内容为item链表,后续item的变化不会影响到resres.add(item)将res尾部指向了item地址,后续item内容的变化会导致re...原创 2019-11-22 10:18:23 · 974 阅读 · 0 评论 -
Java的增强for循环
引用资料:http://www.runoob.com/java/java-loop.htmljava的增强for循环格式:(增强for循环主要用于数组)for(声明语句 : 表达式){//代码句子}声明语句:声明变量类型表达式:表达式是要访问的数组名,或者是返回值为数组的方法。实例:public class Test {public static void main(Stri...转载 2019-03-20 16:58:35 · 899 阅读 · 0 评论 -
Java中的输入输出流
1、定义Java中I/O机制(输入/输出)是通过数据流的形式进行,通过调用java.io包进行数据流的杜读写操作。2、输入输出流分类字符流:以字节为单位的数据传输字节流:未经加工的2进制原始数据。输入/输出字节流字符流输入InputStreamInputStreamReader输出OutputStreamOutputStreamReader...原创 2019-01-09 23:08:43 · 217 阅读 · 0 评论 -
Java中的“互斥锁”机制
在Java多线程运行中为了解决共享资源时存在的多并发问题,采用“互斥锁”机制。互斥锁:在访问共享资源之前对进行加锁操作,在访问完成之后进行解锁操作。用于保证不会出现某个线程总是竞争不过其它线程长时间不被执行的“线程饥饿”情况。目前,有两种方法实现“互斥锁”机制。1、synchronized关键字2、显式的使用Lock 对象...原创 2019-01-09 22:48:24 · 1879 阅读 · 0 评论 -
闲谈Java中的关键字和标识符
标识符一、定义:在Java中,标识符由“下划线、数字、字母、$”组成,数字不能作为标识符开头。二、哪些不能作为标识符:1、关键字2、“true, false, null, friendly, sizeof"这四个不能作为关键字。关键字注意:部分关键字即使在现版本已经被弃用,但也不能被用作标识符,这种被称作“保留字”。...原创 2019-01-08 22:10:12 · 219 阅读 · 0 评论 -
Java中数组的声明与初始化
两种声明方式:1、int[] array;2、int array[];九种初始化方式:1、int[] array = new int[数组长度];2、int[] array = {1, 2, 3, …, n};3、int[] array = new int[] {1, 2, 3, …, n};4、int array[] = new int[数组长度];...原创 2019-01-08 16:30:29 · 642 阅读 · 0 评论 -
Java中be assignable to和be assignable from的理解
A is assignable to BA是B的子类A is assignable from BA是B的超类原创 2019-01-08 21:49:28 · 3127 阅读 · 2 评论 -
关于Java中try...catch...finally语句执行注意点
try…catch…finally属于异常捕捉处理语句,需要记住三个要点:1、当try捕捉到异常时,寻找匹配的catch语句执行,最后执行finally的语句2、当try为捕捉到异常时,接着跳过catch执行fianlly语句3、当catch中出现了return语句时,先执行完finally中的语句再执行return语句...原创 2019-01-08 20:29:23 · 526 阅读 · 0 评论 -
关于Java中的两种存储方式:堆存储和栈存储
Java中有两种存储方式,分别是堆存储和栈存储。一、栈存储存储对象:通常为一些基本类型的变量和对象的引用变量优点:存取速度比堆要快,仅次于寄存器,且栈存储的数据可以用于共享缺点:栈存储的大小确定,不能存储过大的数据二、栈存储存储对象:通常为new 创建的对象和数组优点:动态分配内存大小,灵活性高缺点:存取速度较低,比栈的存取速度更慢...原创 2019-01-08 16:40:35 · 869 阅读 · 2 评论 -
Java中顺序栈和链栈的区别
顺序栈:定义底栈和顶栈的指针,以及存储空间的大小链栈:仅定义顶栈的执政。主要区别:一、空间分配顺序栈是静态空间,链栈是动态空间二、修改内容速度链栈的添加删除元素的速度更快三、查询速度顺序栈的内容查询的速度更快...原创 2019-01-13 22:16:40 · 3042 阅读 · 0 评论 -
大神经验总结:斩获BAT的offer,需要读哪些书?豆瓣评分高达9.0
1、《算法(第 4 版)》2、《数据结构》3、《剑指 Offer 题解》4、《程序员代码面试指南:IT 名企算法与数据结构题目最优解》5、《挑战程序设计竞赛》6、《计算机网络:自顶向下方法》7、《计算机网络》8、《TCP/IP 详解 卷 1:协议》9、《UNIX 网络编程 卷 1:套接字联网 API》10、《图解 HTTP》11、《现代操作系统》12、《...转载 2019-01-08 02:27:38 · 677 阅读 · 0 评论 -
Java中区分普通方法和构造方法
构造方法又称构造器、构造函数方法,也称普通方法我们只需要记住五大不同点。区别一:功能不同构造方法主要是为了给对象初始化,方法则是用于对象调用的场合区别二:返回值不同构造方法没有返回,方法则必须要有返回值(包括void)。区别三:命名构造方法名字与类名保持一致,可以重载多个构造方法,只要构造参数不相同。方法的命名则无此限制。区别四:运行调用顺序构造方法在对象被创建时候被调用,仅...原创 2019-01-08 01:41:14 · 1473 阅读 · 0 评论 -
Java中关于super关键字的作用
在子类继承父类中,一般有一行super的语句,需要记住三种使用方法:1、super.变量/对象名;使用这种方法可以直接访问父类中的变量或对象,进行修改赋值等操作2、super.方法名();直接访问并调用父类中的方法3、super();调用父类的初始化方法,其实就是调用父类中的public xxx()方法,通常第三种指代的是super()的省略写法,系统会默认添加此句。特殊情况:如果父...原创 2019-01-07 20:57:52 · 20164 阅读 · 1 评论 -
Java中类方法和实例方法的区别和注意点
一、类方法类方法是静态方法,前面需要有static修饰符修饰。类方法内不能涉及有关变量的内容1、不能调用类的对象方法2、不能引用对象变量3、类方法不能被重写(覆盖)4、类方法不能使用super, this关键字二、实例方法1、可以调用类的对象方法2、可以引用对象变量3、实例方法可以被重写(覆盖)4、实例方法可以使用super, this关键字区别类方法在加载类时就被分配了内...原创 2019-01-09 23:32:03 · 6350 阅读 · 0 评论 -
Java中的装箱与拆箱问题
装箱:值类型转换为对象类型使用Integer,Double,Boolean等可以将基本数据类型封装成对应的对象拆箱:之前由值类型转换而来的对象类型再转回值类型(装过箱才能拆箱)使用integer,double,boolean等可以将装箱形成的对象返回为对应的基本数据类型自动装箱与自动拆箱在某些情况下,不需要人为调用装箱和拆箱命令,系统会在编译时自动进行装箱/拆箱操作。何时发生自动装箱?...原创 2019-01-09 23:59:05 · 168 阅读 · 0 评论 -
关于Scanner类的理解
当执行该条语句“Scanner sc = new Scanner(System.in)”后,控制台开始等待键盘输入,直到Enter键按下,作为结束符,结束接收,中间默认采用空格键来分割语句。next()和nextLine() 区别:1、next()读入语句时,按空格会导致换行,即它输出的语句必定是连续字符;2、nextLine()读入语句时,按空格识别为空格,所以它输出的语句允许有空格。...原创 2019-03-08 00:55:52 · 296 阅读 · 0 评论 -
Java 中静态代码块初始化问题
当变量为编译器常量时,编译器会跳过初始化直接读取变量。什么是编译器常量?什么是跳过初始化?编译器常量:public static final String a = “CSDN”;跳过初始化:如跳过static块的读取示例:public class Test { public static void main(String[] args) { System.out...原创 2019-08-24 16:09:03 · 656 阅读 · 0 评论 -
try catch finally return的执行顺序
常规情况:try{} catch(){}finally{} return;**特殊情况**:try 里面的return可以返回但不能结束方法.catch ,finnally ,或者正常的return才可以结束本方法.因为finnally始终要执行,所以当catch和finnally里都有return ,catch里的这个return不结束方法...原创 2019-08-24 13:18:14 · 423 阅读 · 0 评论 -
类加载器ClassLoader的加载顺序
父类static方法 –> 子类static方法 –> 父类构造方法- -> 子类构造方法原创 2019-08-24 10:11:29 · 214 阅读 · 0 评论 -
辨别公平锁、非公平锁、乐观锁、悲观锁
公平锁先到先得,优先处理先到的进程非公平锁所有进程到达时都会尝试直接获取锁,如果失败则会进入等待序列乐观锁每次去拿数据的时候都认为别人不会修改,所以不会上锁(适用多读少写的场景),实现:通过记录不同时间点的版本数据,并在更新的时候检测数据是否冲突。悲观锁每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁(适用多写少读的场景),实现:采用sychronized关键字等独...原创 2019-05-23 16:00:24 · 418 阅读 · 0 评论 -
关键字synchronized和volatile的作用以及区别
预备知识:java多线程中的原子性、可见性、有序性(1)原子性:是指线程的多个操作是一个整体,不能被分割,要么就不执行,要么就全部执行完,中间不能被打断。(2)可见性:是指线程之间的可见性,就是一个线程修改后的结果,其他的线程能够立马知道。(3)有序性:为了提高执行效率,java中的编译器和处理器可以对指令进行重新排序,重新排序会影响多线程并发的正确性,有序性就是要保证不进行重新排序(保证...原创 2019-05-23 15:44:27 · 457 阅读 · 0 评论 -
Java各种集合以及特点归纳总结
在Java中有List、 Set、 Map三大集合,其中List与Set是继承自Collection,而Map不是。文末有三大集合的汇总总结,有需要的可以直接拉到文末。List集合:1、ArrayList(最常用)底层是动态数组,故优缺点同数组:查询快,增删慢线程不安全,效率高2、LinkedList底层是链表,(巧记:和数组优缺点互补)查询慢,增删快线程不安全,效率高3、Vec...翻译 2019-03-29 22:07:47 · 5655 阅读 · 2 评论 -
浅谈java集合中HashSet的底层实现----哈希表
java中有三大集合List、Set、,Map。其中HashSet是Set集合的实现,它的底层实现是通过哈希表。哈希表唯一依赖两个方法:HashCode(),equals();向HashSet集合中放入新元素的执行顺序:1、调用Hashcode()函数,看是否已经有相同的哈希值2、如果没有则放入该新元素,如果有则调用equals()函数逐个比对,如果没有,则放入,如果有,则不执行添加元素...原创 2019-03-29 21:35:59 · 490 阅读 · 0 评论 -
TreeMap和TreeSet的区别与相同点
相同点:1、都是有序集合2、TreeMap是TreeSet的底层结构3、运行速度都比hash慢区别:1、TreeSet只存储一个对象,而TreeMap存储两个对象Key和Value(仅仅key对象有序)2、TreeSet中不能有重复对象,而TreeMap中可以存在3、TreeMap的底层采用红黑树的实现,完成数据有序的插入,排序。PS:红黑树的特点:1:每个节点要么是红色/黑色。...原创 2019-03-21 13:55:20 · 4891 阅读 · 0 评论 -
Java集合总结系列:Set接口及其实现
一、Set接口Set 接口与 List 接口相比没有那么多操作方法,比如:1、List 接口能直接设置或获取某个元素的值,而Set接口不能。2、List 接口能直接在指定位置删除、增加元素,而Set接口不能。3、List 接口有 listIterator 方法,可以获得 ListIterator 对象,而 Set 接口不能。Set 只能通过 iterator 迭代的方式获取元素。对比一下...转载 2019-03-21 13:29:48 · 232 阅读 · 0 评论 -
StringBuilder类的常用方法
初始化:StringBuilder sbd = new StringBuilder(“hello”);在第i个位置插入指定内容:StringBuilder sbd=new StringBuilder("Hello");sbd.Insert(2,"eee"); //在”He”后面插入,变为" Heeeello!"在末尾添加指定内容:Str..原创 2019-03-17 17:59:37 · 1294 阅读 · 0 评论 -
采用动态规划思想将字符串A转换为B(通过添加、删除、替换三种方式)
题目描述对于不同的字符串,我们希望能有办法判断相似程度,我们定义了一套操作方法来把两个不相同的字符串变得相同,具体的操作方法如下:1 修改一个字符,如把“a”替换为“b”。2 增加一个字符,如把“abdd”变为“aebdd”。3 删除一个字符,如把“travelling”变为“traveling”。思路:开一个二维数组d[i][j]来记录a0-ai与b0-bj之间的编辑距离,要递推时,...转载 2019-03-21 01:01:56 · 4183 阅读 · 0 评论 -
collection中各类中数值是否可重复?
Collection(集合):容器,用于存放对象(引用类型。基本类型需要自动装箱)List(列表):元素有序,元素可以重复 (有索引)。 通过元素的equals()方法判断是否重复。Set(集):元素无序,不可重复 (没有索引)。 遍历只能用Iterator迭代器和增强for, 不能使用普通for遍历。ArrayList(数组列表): 查询快,增删慢。LinkedList(链表): 查询慢...转载 2019-01-12 19:55:26 · 2280 阅读 · 0 评论 -
Java输入输出流树状关系图
转载 2019-01-12 19:33:23 · 737 阅读 · 1 评论 -
Java程序种类
Java的程序可以分为三大类:1、内嵌于web的applet2、独立运行的apllication3、运行于服务器端的servlets原创 2019-01-05 21:03:56 · 735 阅读 · 0 评论 -
Java的访问修饰符、非访问修饰符分类详细总结以及修饰符用途总结
访问权限 public protected default private同一个类 yes yes yes yes同一个包 yes yes yes no子类 yes ...原创 2019-01-05 22:59:46 · 2423 阅读 · 0 评论 -
Java中call by参数传递指令的作用
在Java中有两种参数传递方式:1、按值传递(传递数值)2、按引用传递(传递对象的引用,即数据的地址)一、按值传递 call by value1、不会改变传递的数值大小二、按引用传递 call by reference1、不会改变传递的数据的地址2、可以改变传递的数据参数内容...原创 2019-01-05 19:57:48 · 950 阅读 · 0 评论 -
Java异常继承层次图
转载 2019-01-05 17:09:18 · 1201 阅读 · 0 评论 -
Java中构造器(构造方法/Constructor)和方法的区别
构造方法≠方法要区分Java中构造器(构造方法/Constructor)和方法的区别,需要掌握下面几个要点:修饰符构造器:不能用abstract、final、native、static修饰方法:可以用各种修饰符修饰返回值构造器:无返回值,也无void方法:有返回值,或返回void※命名构造器:和类名相同,首字母通常大写(名词居多)方法:动词居多,首字母通常小写this构造器...原创 2019-01-05 16:50:06 · 3583 阅读 · 0 评论 -
Java中抽象类的理解和学习要点
抽象类文字定义:当类中缺乏足够的信息实例化对象,则为抽象类,它与类的主要区别在于抽象类无法实例化对象。抽象类代码:Java中使用abstract class声明抽象类。抽象类学习要点:1、抽象类中可以存在方法、属性、静态属性、静态方法2、抽象类中可以存在不大于一个抽象方法3、抽象类中的抽象方法不能用private、static、synchronized、native访问修饰符修饰。...原创 2019-01-05 15:47:19 · 186 阅读 · 0 评论 -
Java中的接口定义、知识要点,如何区分接口与类
接口的定义为:是一个抽象类型,是抽象方法的集合,接口通常以interface来声明与类的区分:类描述对象的属性和方法,接口则包含类要实现的方法。通俗化理解:类在说“是什么”,接口在说“有什么”接口知识要点:1、接口中的变量一般用public static final修饰符修饰,故都成为了常量2、接口中的构造方法都只能用public修饰(设计即用来访问)3、接口可以被继承,且可以同时继承多...原创 2019-01-05 15:38:54 · 768 阅读 · 0 评论 -
关于Java构造器(构造方法/构造函数)
在Java类文件中,至少要有一个或以上的构造器。构造器=构造函数=构造方法,指代的是一样东西。关于构造器(构造方法/构造函数),要记住以下三个要点:1、构造器名必须与类名相同2、构造器可以调用父类的构造器3、当构造器的数量&amp;gt;1时,采用重载方法[重载:构造器名相同,参数列表不同(参数个数、参数类型和参数的顺序)]...原创 2019-01-05 15:27:17 · 342 阅读 · 0 评论 -
关于Java运算符的含义:左移、右移、无符号右移、位与、位或、位非、位异或
一、左移( &lt;&lt; )形式:a&lt;&lt;b含义:将a的数值在二进制下向左移动b个位置示例:5&lt;&lt;2//原数值0000 0101//左移后0001 0100二、右移( &gt;&gt; )形式:a&gt;&gt;b含义:将a的数值在二进制下向右移动b个位置示例:5&gt;&am原创 2019-01-05 14:48:18 · 949 阅读 · 0 评论