Java
JustSleep
这个作者很懒,什么都没留下…
展开
-
二叉查找树,红黑树,AVL树优缺点比较
1、二叉查找树(Binary Search Tree)很显然,二叉查找树的发现完全是因为静态查找结构在动态插入,删除结点所表现出来的无能为力(需要付出极大的代价)。BST的操作代价分析: (1) 查找代价: 任何一个数据的查找过程都需要从根结点出发,沿某一个路径朝叶子结点前进。因此查找中数据比较次数与树的形态密切相关。 当树中每个结点左右子树高度大致相同时,树高为logN。则平均查找长度与logN成正比,查找的平均时间复杂度在O(logN)数量级上。...转载 2020-07-29 16:07:20 · 4327 阅读 · 0 评论 -
Java范型介绍
1、自定义范型结构:范型类、范型接口、范型方法范型类、范型接口在实例化时,如果没有指明范型,将被擦除,认为此范型类型为Object泛型类可能有多个参数,此时应将多个参数一起放在尖括号内。比如: <E1,E2,E3>泛型类的构造器如下:public GenericClass(){}。泛型的指定中不能使用基本数据类型,可以使用包装类替换。在类/接口上声明的泛型,在本类或...原创 2020-05-03 16:42:53 · 673 阅读 · 0 评论 -
Java反射机制
1、Class是反射的源头关于java.lang.Class类的理解1.类的加载过程:程序经过javac.exe命令以后,会生成一个或多个字节码文件(.class结尾)。接着我们使用java.exe命令对某个字节码文件进行解释运行。相当于将某个字节码文件加载到内存中。此过程就称为类的加载。加载到内存中的类,我们就称为运行时类,此运行时类,就作为Class的一个实例。2.换句话说,Cl...原创 2020-04-27 18:14:13 · 87 阅读 · 0 评论 -
编程语言的语言特性及分类
1、反射的理解Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期借助于Reflection API取得任何类的内部信息,并能直接操作任意对象的内部属性及方法。 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对象看到类的结构。这个对象就像一面镜子,透过这个镜子看到...原创 2020-04-26 23:24:27 · 513 阅读 · 0 评论 -
java常用类
1、Java比较器(比较对象的大小)Java实现对象排序的方式有两种: 自然排序:java.lang.Comparable 定制排序:java.util.Comparator2、comparable接口Comparable接口强行对实现它的每个类的对象进行整体排序。这种排序被称为类的自然排序。实现Comparable接口的对象列表(和数组)可以通过 Collections....原创 2020-04-26 18:14:47 · 84 阅读 · 0 评论 -
java集合类
1、java集合可以分为Collection和map体系Collection接口:单列数据,定义了存取一组对象的方法的集合 1)List:元素有序、可重复的集合 2)Set:元素无序、不可重复的集合 Map接口:双列数据,保存具有映射关系“key-value对”的集合2、了解Collection 接口中的方法,这些方法也同样适用于Set 集合,List 和 Queue 集合。...原创 2020-04-25 21:21:17 · 101 阅读 · 0 评论 -
java8新特性及其他
1、java的lamda表达式函数式接口里面,有且仅有一个方法(未实现),只有函数式接口才能用lamda表达式。否则就是java的标准普通接口。书写的简单口诀:拷贝小括号,写死右箭头,落地大括号。在java接口中可以用defaut或者static来进行函数的实现,两者都可以定义多个函数。2、集合类不安全liist不安全:报错异常是java.util.ConcurrentM...原创 2020-04-24 22:53:03 · 180 阅读 · 0 评论 -
Java接口与内部类
1、关键字static使用范围: 在Java类中,可用static修饰属性、方法、代码块、内部类注意:因为不需要实例就可以访问static方法,因此static方法内部不能有this。(也不能有super)static修饰的方法不能被重写...原创 2020-07-21 15:32:06 · 99 阅读 · 0 评论 -
Java基本对象与三大性质
1、对象的内存解析2、对象数组的内存解析3、方法传值Java里方法的参数传递方式只有一种:值传递。 即将实际参数值的副本 (复制品)传入方法内,而参数本身不受影响。 形参是基本数据类型:将实参基本数据类型变量的“数据值”传递给形参 形参是引用数据类型:将实参引用数据类型变量的“地址值”传递给形参4、重载与重写重载1)定义:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数 类型不同即可。2)特点:同一个类、相同方法名与返回值类型无关,只看原创 2020-07-20 20:06:32 · 283 阅读 · 0 评论 -
java字符串类简单介绍
1、String类String是一个final类,代表不可变的字符序列。String对象的字符内容是存储在一个final字符数组value[]中的。 方法区(含字符串常量池)2、string的创建方式一:通过字面量的方式(区别于new)给一个字符串赋值,此时的字符串值声明在字符串常量池中。字符串常量池中不会存储相同内容的字符串。方式二:使用new在内存中创建了...原创 2020-04-26 16:34:17 · 1047 阅读 · 0 评论 -
Java数组
一维数组1、初始化//1.1 静态初始化:数组的初始化和数组元素的赋值操作同时进行ids = new int[]{1001,1002,1003,1004};//1.2动态初始化:数组的初始化和数组元素的赋值操作分开进行String[] names = new String[5];2、数组默认初始化值3、内存解析注意:刘德华和张学友的位置存的不是这两个真实值,而是这两个字符串在字符串常量池中的地址。详情见字符串常用类那节。二维数组1、初始化//静态初始化in原创 2020-07-19 20:27:29 · 98 阅读 · 0 评论 -
Java位运算
1.^(亦或运算) ,针对二进制,相同的为0,不同的为1public static void main(String[] args) { System.out.println("2^3运算的结果是 :"+(2^3)); //打印的结果是: 2^3运算的结果是 :1}2 =======>00103 =======>00112^3就为0001,结...转载 2019-03-03 19:06:03 · 50 阅读 · 0 评论 -
Java遍历Map、HashMap
下面介绍三种方法遍历:package easy;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import java.util.Map.Entry;import java.util.Set;public class hashmap { public static void mai...原创 2018-10-07 14:48:35 · 94 阅读 · 0 评论 -
Java建立二叉排序树和平衡树
建立二叉排序树,是从前往后扫描数组,可以不保证高度最小,从头节点依次向下寻找要插入的适当位置。建立平衡树,可以先将数组进行排序,然后选取中间元素作为根节点,数组中间元素左边的元素为根节点的左子树,数组中间右边的元素为根节点的右子树。再对右子树和右子树选取中间节点,进行建树操作。代码:package easy;import easy.JavaTree;import easy.TreeNo...原创 2018-10-06 12:14:21 · 870 阅读 · 3 评论 -
Java创建普通二叉树
节点表示:class TreeNode{TreeNode lChild;//左孩子TreeNode rChild;//右孩子int data; //数据域TreeNode(int x) { data = x; }}package easy;import java.util.ArrayList;import java.util.List;class TreeNode{...原创 2018-10-05 20:12:40 · 858 阅读 · 0 评论 -
Java创建单链表
节点表示:class Node {int val;Node next;Node(int x) { val = x; }}public class MergeTwoSortedLists { static Node head = null;//链表头的作用 public static void main(String[] args){ //下面两行是测试,注意...原创 2018-10-02 10:15:36 · 3027 阅读 · 0 评论 -
Java Scanner简介
用途:通过 Scanner 类来获取用户的输入。关于nextInt()、next()和nextLine()的理解:nextInt():nextInt()只读取数值,剩下”\n”还没有读取next():next()遇见第一个有效字符(非空格,非换行符)时,开始扫描,当遇见第一个分隔符或结束符(空格或换行符)时,结束扫描,只读空格和回车之前的数据next()、nextDouble() 、 ne...原创 2018-10-01 20:50:46 · 125 阅读 · 0 评论