JAVA基础补漏--链表】的更多相关文章

查询慢:链表中数据不是连续的,每次查询元素,都得从头开始 增删快:链表结构,增加或删除一个数据,对链表的整体结构没有影响,所以快.…
==在不同数据类型中意义不同. 在基础数据类型中,表示的是数值的比较. 在引用数据类型中,表示的是内存地址值的比较. 一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值0 int:整型,用于存储整数,在内在中占32位,即4个字节,取值范围-2147483648~2147483647,默认值0 long:长整型,在内存中占64位,…
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList.   题目代码 /** * @program: JavaCode * @description:输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. * @author: Yukai Fan * @create: 2018-08-15 20:28 **/ public class LinkListPrint { public static void main(String[] args) { LinkListP…
Collections在对自定义对象进行排序时,自定义类需要对compareTo()函数进行重写. public class Student implements Comparable<Student>{//实现Comparable接口,范型定义为类自己 private String name; private Integer age; @Override public String toString() { return "Student{" + "name='…
HashSet: 1.无序集合. 2.底层是一个哈希表结构,查询速速很快. 哈希表==数据 + 链表/红黑树 特点:查询速度快. 存储数据到SET中: 1.计算数据的HASH值. 2.查看有没有相同HASH值的元素. 3.如果没有就把数据存到集合中. 4.如果有相同的HASH值,用equals方法对数据进行比较,认定两个元素相同,不会把数据进行存储. 5.如果HASH值相同,但数据不同(重地,通话),也会把数据进行存储. LinkedHashSet 底层是哈希表(数组+链表/红黑树)+链表;链表…
Arraylist 通过对ArrayList的源码的查看,他的底层实现是对数组进行数据的操作,所以他的数据特点同数组. 查询快,因为他的内存区域为一个整块,可直接根据索引进行查询. 增删慢,因为每次增删都会创建一个新的数组去接收源数据,然后把源数据复制过去,销毁源数据. LinkedList 通过对LinkedList的源码的查看,他的底层实现是对链表进行数据的操作,所以他的数据特点同链表. 查询慢 增删快…
今天在写代码的时候,index定义的时候用了Integer,在list.remove(index)的时候,总是不成功,后来发现如果用Integer定义的时候,index不再是基础数据类型,被识别为remover(Object o),导致不成功,特此记录.…
字符串常量池 String a="abc"; String b="abc"; char[] str = {"a","b","c"}; String c = new String(str); System.out.println(a==b); //true System.out.println(a==c); //false System.out.println(b==c); //false 只有直接用双引号定…
public class Test2 { public static void main(String[] args) throws IOException { FileInputStream fis = new FileInputStream("1.txt"); int len = 0; byte[] bytes = new byte[200]; while ((len = fis.read(bytes)) != -1) { System.out.println(len); Syst…
使用场景:当参数列表数据类型已确定,但参数的个数不确定,就可以用可变参数 格式: 修饰符 返回值类型 方法名(数据类型...变量名){} 原理:可变参数底层为一数组,可根据变量个数的不同,创建不同长度的数组,来存储这些参数.参数个数 >=0 public class demo1 { public static void main(String[] args) { int add = add(1, 2, 3, 444); System.out.println(add); } public stat…
泛型通配符只能用于方法的参数 不能用对象定义 public class Test { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>(); //ArrayList<?> list = new ArrayList<>();//不能这样定义 list.add("good"); list.add("bad");…
成员内部类 public class InnerClass { public static void main(String[] args) { System.out.println("+++++++++++++++++++++++"); Outer.Inner oi = new Outer().new Inner(); oi.methodInner(); } } public class Outer { int num = 10; public class Inner{ int nu…
获得CLASS的三种方式: 1.Class.forname("全类名"):将字节码文件加载进内存,返回Class对象. 多用于配置文件,将类名放到配置文件中,读取配置文件,加载类 2.类名.class:通过类名的属性class获取 多用于参数的传递 3.对象.getClass():getClass()方法在Object类中定义着. 多用于对象获取字节码的方式 结论: 同一个字节码文件(*.class)在一次程序运行过程中,只会被加载一次,无论通过哪种方式获得的class都是同一个. C…
Fu obj = new ZI(); 访问成员变量规则 编译看左,运行看左. obj.num; 1.直接通过对象名访问成员变量:看等号左右是谁,优先用谁,没有则往上找. obj.getnum(); 2.间接通过成员方法访问成员变量:看该方法属于谁,优先用谁,没有则往上找. 子类没有覆盖重写,就用父. 子类有覆盖重写,就用子. 访问成员方法规则 编译看左,运行看右. obj.fun();//父类和子类中都有这个方法. obj.funzi();//error编译不通过.父类中没有funzi()这个方…
抽象类使用的四点注意事项: 1.抽象类不能创建对象. 2.抽象类可以没有抽象方法,但有抽象方法一定得是抽象类. 3.抽象类可以有构造方法,是供子象创建对象时,初始化父类成员使用的. 4.抽象类的子类,必须要重写父类的所有抽象方法,否则报错. Interface java8 特性 增加default方法 使用方法: ··· public interface myInterface( public void abstract fun1(); public void default fun2() {…
子类的对象在创建时,首先调用父类的构造函数,再调用子类自己的构造函数. 子类的构造函数中,有一个默认的super(),为一个无参调用,这个不显示,但会被首先调用,所有才会有父类构造函数被调用的情况. 如果父类的构造函数中有参数,则super()会变无效,子类构造函数将报错,如果想要改变这种情况,可以改写super(参数),来实现对父类有参构造函数的调用. 且super()只能放在构造函数的第一行,且只能有一个super(). 如果子类的构造函数中,用了本类其他构造函数,则使用this(参数),如…
静态方法不能访问非静态变量的原因 静态的方法和变量在内存中先产生,非静态的后产生,在静态调用时非静态可能还未创建,所以会发生错误,故不能访问. static的内存图 静态代码块 static { System.out.println("i am static code"); } 在类中由static包起来的代码块,在创建此类的第一个对象的时候被调用,在所有构造函数前执行,且只执行一次 用处:一般用于在类初始化时,初始化多个常量,如JDBC中的数据库连结关键字.…
int[] a = new int[5]; int[] b = new int{1,2,3}; int[] c = {4,5,6}; 以上几种定义都可以. a叫动态初始化. b叫静态初始化. c叫静态初始化的省略格式. a,b可以拆分书写,但c不能拆分书写. int[] a; a = new int[5]; int[]b; b = new int{1,2,3} 以上两种可以 int[] c; c = {4,5,6} 数据空间连续,查询快,可以根据索引快速定位数据 数组的长度是固定的,如果要增加或…
导读:额,我介绍的这两种方法,有点蠢啊,小打小闹的那种,后来我查了查资料,别人都起了好高大上的名字,不过,本篇博客,我还是用何下下的风格来写.两种方法,一种是丢手绢法,另外一种,是迷路法. 这两种方法的基本思想:假设有环(顿时想到了三个数中找最大的,假设一个最大值有木有,更有木有想到一个排序算法呢?) 一.丢手绢法(指针追赶法) 其实,这种方法时有个很高大上的名称的,叫做指针追赶法.不过,我刚开始想了半天没想明白,后来等我想明白了之后,哇塞,其实思想就是我小时候玩得丢手绢的游戏. 趣说指针追赶法…
(尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76358523冷血之心的博客) 马上就要秋招了,新的一轮笔试面试马上就要开始轰炸了,在这关键的节骨眼上,要做到查缺补漏,夯实基础,特此总结~ 友情链接: Java基础拾遗(一) Java基础拾遗(二) Java集合相关知识 HashMap和Hashtable的区别 HashMap没有考虑同步,是线程不安全的:Hashtable使用了synchronized关键字,是…
如若转载请注明出处: http://www.cnblogs.com/wang-meng/p/5898837.html   谢谢.上一篇发了一个找工作的面经, 找工作不宜, 希望这一篇的内容能够帮助到大家.对于这次跳槽找工作, 我准备了挺长的时间, 其中也收集了很多比较好的笔试面试题, 大都是一些常用的基础, 很多都是由于时间原因没有来得及给出答案, 但是题目大都是比较经典实用的, 现在都放到这里, 希望对正处于找工作的博友有一定的帮助. 第一部分: Java基础(此部分面试题题目来自:http:…
Java集合类解析 List.Map.Set三个接口,存取元素时,各有什么特点? List 以特定次序来持有元素,可有重复元素.Set 无法拥有重复元素,内部排序.Map 保存key-value值,value可多值. Hashtable和HashMap的区别: 1.Hashtable是Dictionary的子类,HashMap是Map接口的一个实现类: 2.Hashtable中的方法是同步的,而HashMap中的方法在缺省情况下是非同步的.即是说,在多线程应用程序中,不用专门的操作就安全地可以使…
Java基础常见英语词汇(共70个) ['ɔbdʒekt] ['ɔ:rientid]导向的                             ['prəʊɡræmɪŋ]编程 OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程 [dɪ'veləpmənt][kɪt]工具箱                              ['vɜːtjʊəl]虚拟的 JDK:Java development kit, j…
本篇介绍Java基础中常用API使用,当然只是简单介绍,围绕重要知识点引入,巩固开发知识,深入了解每个API的使用,查看JavaAPI文档是必不可少的. 一.java.lang包下的API Java常用基础包,在开发中会自动导入到代码环境中,不需要import. 1.基本数据类型/包装类 (1)基本数据类型:byte.short.int.long.float.double.char.boolean (2)包装类: Byte:–提供了将字节数据转换为其他类型的方法,从Number抽象类继承过来.d…
<p>------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------</p><p> </p><p>笔记一共记录了毕向东的java基础的25天课程,分上.中.下</p><p>本片为中篇,涵盖11-20天课程</p&…
这两天回忆一些Java基础,感觉自己很多地方都不是很牢固,也花费在不少时间和不少流量在手机上查资料. 还是写下来这些东西以免再忘记. 同时还是要记住多动手,编程最重要的就是动手敲啊,有想法有疑问就要自己去实现去验证. 1. 访问控制 Java的默认访问权限(包访问权限)跟C++中的友元很像其实,都具有一定的特殊性. 同一个包中的类是可以任意访问其他类的非私有成员的,而如果继承关系发生在同一个包中,子类继承的所有非私有成员都是可见的. 但如果继承不是发生在同一个包中则会有很大不同,通过继承导入的包…
本人从事java开发6年左右,主要从事互联网相关的开发,目前还是奋战在一线的码农,痛并快乐着.受互联网产品热潮的影响,关注高性能低成本架构,互联网开发框架,以下是我认为作为一个资深java程序员应该掌握的技术. 集合里面那些对象的原理 扩容原理,特别是map的底层 Hashmap.Hashtable和cocurrentHashMap的区别,要讲出它们各自的实现原理才行,比如Hashmap的扩容机制.cocurrentHashMap的段锁原理.多线程安全性. 几种造线程池的方法,区别 线程有哪几种…
最近在整理JAVA 基础知识,从jdk源码入手,今天就jdk中 java.util包下集合类进行理解 先看图 从类图结构可以了解 java.util包下的2个大类: 1.Collecton:可以理解为主要存放的是单个对象 2.Map:可以理解为主要存储key-value类型的对象 一.Collection Collection继承了Iterate接口,Iterate用于集合内迭代器抽象接口,其子类均实现接口中方法,看下ArrayList下实现: /** * Returns an iterator…
java基础系列(三)---HashMap java基础系列 java基础系列(一)---String.StringBuffer.StringBuilder java基础系列(二)---Integer java基础系列(三)---HashMap 这是我的博客目录,欢迎阅读 基本概念 节点: Node<Key,Value>,存放key和value static class Node<K,V> implements Map.Entry<K,V> { final int ha…
java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现 java基础解析系列(一)---String.StringBuffer.StringBuilder java基础解析系列(二)---Integer java基础解析系列(三)---HashMap 这是我的博客目录,欢迎阅读 实验 遍历HashMap public static void main(String[] args) { Map<String, String> map=new HashMap<St…