
Java 基础
Java入门
桃子味的梨
这个作者很懒,什么都没留下…
展开
-
Java面试——集合
1. 整体框架Collection是存储一组对象的集合容器,它主要有以下三个【接口子类】List (表——对付顺序):可以有重复元素的有序集合,子类有ArraryList 和LinkList Set (集合——独一无二):没有重复元素的集合,存储无序。主要实现了两个实现类:HashSet、TreeSet Queue :为了存储数据而设计的,而不是处理数据,适合做F...原创 2020-03-30 12:48:13 · 469 阅读 · 0 评论 -
java 学习记录-导航
一、基础知识java基础:1.1 基础知识速学,程序练习进制转换 java基础:7.1 继承extends、重写、重载、多态、protected、final java基础:1.2 输入重定向、输出重定向 java基础:8.1 异常 java基础:2.1 方法、重载、随机字符、方法抽象 java基础:8.2 异常 编程练习 java基础:3.1 一维数组、forea...原创 2019-03-14 16:47:19 · 766 阅读 · 2 评论 -
java 快捷键记录
批量修改 : ALT+SHIFT+R快速输入主方法: 1. 敲入main 2. alt+/查看java源代码: 代码里选中,F3格式化代码: ctrl+shift+f快速助手:ctrl+shift+o 去掉未使用的类 等等都可以使用快速注释:选中一行或者多行代码 ctrl+shift+c转大写:ctrl+shift+x 选中的转换为大写转小写:ctrl+shift+y 选...原创 2019-03-13 22:00:38 · 227 阅读 · 0 评论 -
《JAVA核心技术 卷1》阅读笔记
第3章 基本结构JAVA没有无符号类型。Float类型有后缀F,没有后缀F的浮点数是double型。在十六进制中,用p表示指数,而不是e。例如0x1.0p-3&&、|| 按照“短路”方式求值,如果第一个操作数可以确定表达式结果,不计算第二个数&、| 在得到结果前,一定要计算两个操作数的值。>>>运算符用0填充高位,>>用符号位填充...原创 2019-06-14 09:48:54 · 326 阅读 · 0 评论 -
Java进阶:17.3 伸展树
1、伸展树简介伸展树(Splay Tree)是特殊的二叉查找树(BST)。它的特殊是指,它除了本身是棵二叉查找树之外,它还具备一个特点: 当某个节点被访问时,伸展树会通过旋转使该节点成为树根。这样做的好处是,下次要访问该节点时,能够迅速的访问到该节点。通过之前的学习,知道连续m次查找,对于AVL树来说,共需要O(mlogn)时间。根据局部性原理,我们可以改进AVL树!!-----> 引...原创 2019-07-25 09:58:57 · 630 阅读 · 0 评论 -
Java进阶:17.2 AVL树
1、AVL树(平衡二叉树):AVL树本质上是一颗二叉查找树,但是它又具有以下特点:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为平衡二叉树。下面是平衡二叉树和非平衡二叉树对比的例图:平衡因子(bf):结点的左子树的深度减去右子树的深度,那么显然-1<=bf<=1;AVL...原创 2019-07-24 14:26:10 · 478 阅读 · 0 评论 -
Java进阶:17.1 二叉搜索树
文章目录1、树2、二叉搜索树 BST2.1 二叉树的节点类 Node\2.2 查找节点 find(x)2.3 查找节点 contains(x)2.4 插入节点 insert(x)2.5 找最大/最小值2.6 删除节点 remove() ——方法12.7 删除节点 remove() ——方法23、遍历1、树树(tree)是一种抽象数据类型(ADT),用来模拟具有树状结构性质的数据集合。它是由...原创 2019-07-26 14:25:10 · 282 阅读 · 0 评论 -
java进阶:16.1 JDBC
文章目录第1步,为项目导入mysql-jdbc的jar包。第2步,初始化驱动。第3步,初始化驱动。第4步,数据修改。第5步,关闭连接。 第1步,为项目导入mysql-jdbc的jar包。访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。为了代码能够使用第三方的类,需要为项目导入mysql的专用Jar包。下载mysql-connector-...原创 2019-04-19 14:06:42 · 316 阅读 · 0 评论 -
java进阶:15.5 多线程 - 合集
把非线程安全的集合转换为线程安全之前13章学过的集合框架,Java 合集框架为线性表、集合和映射表。Java 合集框架中的类不是线程安全的;也就是说,如果它们同时被多个线程访问和更新,它们的内容可能被破坏。可以通过锁定合集或者同步合集来保护合集中的数据。Collections 类提供6 个静态方法来将合集转成同步版本:同步包装类 ,这些方法使用 synchronized 关键字来 实现同步...原创 2019-04-15 19:50:04 · 320 阅读 · 0 评论 -
java进阶:15.4 多线程 - 信号量、原子操作
1. 信号量计算机科学中,信号量指对共同资源进行访问控制的对象。在访问资源之前,线程必须从信号量获取许可。在访问完资源之后,这个线程必须将许可返回给信号量。为了创建信号量,必须确定许可的数量,同时可选用公平策略。任务通过调用信号量的acquire() 方法来获得许可,通过调用信号量的release()方法来释放许可。一旦获得许可, 信号量中可用许可的总数减1。一旦许可被释放,信号量中可用许可的...原创 2019-04-15 19:28:52 · 561 阅读 · 0 评论 -
java进阶:15.3 多线程 - 锁、ReentrantLock
与synchronized类似的,lock也能够达到同步的效果。1. 利用加锁同步锁是一种实现资源排他使用的机制。对于实例方法,要给调用该方法的对象加锁。对于静态方法,要给这个类加锁。如果一个线程调用一个对象上的同步实例方法(静态方法),首先给该对象(类)加锁,然后执行该方法,最后解锁。在解锁之前,另一个调用那个对象(类)中方法的线程将被阻塞,直到解锁。 与 synchroniz...原创 2019-04-15 16:45:21 · 309 阅读 · 0 评论 -
java进阶:15.2 多线程 - synchronized、线程安全类
如果一个类的对象在多线程程序中没有导致竞争状态,则称这样的类为线程安全的( thread-safe) 。1. 线程同步原创 2019-04-15 15:39:35 · 270 阅读 · 0 评论 -
java进阶:15.1 多线程 - Thread、Executor
1. 进程、线程概念首先要理解进程(Processor)和线程(Thread)的区别:进程:是执行中一段程序,即一旦程序被载入到内存中并准备执行,它就是一个进程。进程是表示资源分配的的基本概念,又是调度运行的基本单位,是系统中的并发执行的单位。线程:单个进程中执行中每个任务就是一个线程。线程是进程中执行运算的最小单位。一个线程只能属于一个进程,但是一个进程可以拥有多个线...原创 2019-04-11 16:43:42 · 834 阅读 · 0 评论 -
java基础:14.5 散列 -- HashMap的手动实现
java.util.Map 接口可以使用三个具体的类来创建一个映射表: HashMap 、LinkedHashMap 、TreeMap.java.util.HashMap 使用散列实现java.util.LinkedHashMap 使用LinkedListjava.util.TreeMap 使用红黑树。 1 散列的基本概念回顾一下映射表(map) :键Key - 值Va...原创 2019-04-10 15:46:03 · 577 阅读 · 0 评论 -
java基础:14.4 栈、队列
栈、栈的JAVA实现、逆序输出 - 进制转换问题、递归嵌套 - 括号匹配问题、递归嵌套 - 栈混洗问题、延迟缓冲2、队列的实现2、栈的实现3、测试4、优先队列原创 2019-04-08 15:42:23 · 303 阅读 · 0 评论 -
java基础:14.3 线性表的手动实现
实现线性表的方式有两种。一种是使用数组( array) 存储线性表的元素。数组大小是固定的。如果元素个数超过了数组的容量,就创建一个更大的新数组,并将当前数组中的元素复制到新数组中。另一种是使用链式结构( linked structure) 。链式结构由结点组成,每个结点都是动态创建的,用来存储一个元素。所有的结点链接成一个线性表。这样,就可以给线性表定义两种类。为了方便起见,分别称这两种类...原创 2019-04-08 15:31:29 · 411 阅读 · 0 评论 -
java基础:14.2 排序算法
1、选择排序插入排序重复地将新的元素插入到一个排好序的子线性表中,直到整个线性表排好序。package Sort;public class InsertionSort { public static void insertionSort(int[] list) { for(int i=1 ; i<list.length ; i++) { int currentEl...原创 2019-04-01 22:08:05 · 480 阅读 · 0 评论 -
java基础:14.1 泛型
文章目录1. 回顾ArrayList类2. 泛型的概念3.通配泛型4.注意1. 回顾ArrayList类ArrayList是一种泛型类,具有一个泛型类型<E>,创建一个ArrayList 时,可以指定一个具体的类型来替换E。Java 提供ArrayList 类来存储不限定个数的对象。位于java.util 包中。存储在ArrayList中的元素必须是一种对象,不能使用int的基本数...原创 2019-03-28 21:24:31 · 430 阅读 · 0 评论 -
java基础:13.9 集合框架 - 总结
1、ArrayList vs HashSetArrayList 中数据存放的位置和我们添加数据的前后顺序一样HastSet 中数据存放的位置和添加顺序无关,和HashCode有关。List 中的数据可以重复。Set 中不允许重复数据。 2、ArrayList vs LinkedListArrayList1.插入/删除数据速度慢。因为要把插入点后所有对象移位。...原创 2019-03-28 20:41:07 · 247 阅读 · 0 评论 -
java基础:13.8 集合框架 - 二叉树
之后补充。原创 2019-03-27 19:06:33 · 255 阅读 · 0 评论 -
java基础:13.7 集合框架 - Map(HashMap、LinkedHashMap 、TreeMap)
1、HashMap概念Map 接口存储一组键值对象,提供key(键)到value(值)的映射。HashMap 是一个散列表,它存储的内容是键值对(key-value) 的映射。该类实现了Map接口,根据键的HashCode值存储数据,具有很快的访问速度,最多允许一条记录的键为null,不支持线程同步。主要实现方法为put 和 get 方法通过put方法进行参数和值的存储 map.pu...原创 2019-03-27 20:48:41 · 440 阅读 · 0 评论 -
java基础:13.6 集合框架 - Queue(LinkedList)
文章目录1、Deque2、Queue3、ArrayList 和 LinkedList 的区别4、练习与ArrayList一样,LinkedList也实现了List接口,诸如add,remove,contains等等方法。LinkedList 实现了:List 、Deque (双向链表结构)、Queue(队列接口)。 1、Deque LinkedList <xxx>...原创 2019-03-27 17:31:42 · 510 阅读 · 0 评论 -
java基础:13.6 集合框架 - Queue(Deque)
1、概述Deque是Queue的子接口,我们知道Queue是一种队列形式,而Deque(double-ended queue)则是双向队列,它支持从两个端点方向检索和插入元素,因此Deque既可以支持LIFO形式也可以支持LIFO形式。Deque接口是一种比Stack和Vector更为丰富的抽象数据形式,因为它同时实现了以上两者。addFirst(e) 、removeFirst() 、add...原创 2019-04-03 21:27:06 · 349 阅读 · 0 评论 -
java基础:13.5 集合框架 - List 表(ArrayList)
文章目录1、ArrayList2、和数组的区别3、常用的方法4、使用泛型与不使用泛型5、遍历6、练习1、ArrayList在 java基础:6.0 ArrayList 中,初步了解了ArrayList,知道了ArrayList的特点:ArrayList 的大小灵活,所以无须提前给定它的大小。而当创建一个数组时,它的大小必须给定。ArrayList 包含许多有用的方法。比如,可以使用con...原创 2019-03-27 16:29:03 · 476 阅读 · 0 评论 -
java基础:13.4 集合框架 - Set (HashSet、LinkedHashSet、TreeSet)
文章目录1、集合Set 与 散列码2、HashSet 概念3、HashSet 作用4、HashSet 遍历5、hashCode方法必须与equals方法必须兼容1、集合Set 与 散列码集合中没有重复的对象,当添加一个新对象到集合时(put),JVM如何判断是否有重复??此处需要了解HashCode的概念和作用了~~~散列码是由对象导出的一个整数值。在Object中有一个hashCode方...原创 2019-03-27 21:39:33 · 382 阅读 · 0 评论 -
java基础:13.3 集合框架 - Collection
1、Collection 接口Collection是 Set、 List 、 Queue 和 Deque 的接口。( Deque 继承 Queue,间接得继承了 Collection )Queue: 先进先出队列Deque: 双向链表2、Collections 类Collections 是一个工具类。everse 反转shuffle 混淆sort 排序swap ...原创 2019-03-28 14:50:21 · 317 阅读 · 0 评论 -
java基础:13.2 集合框架 - Iterator、Iterable
1、IterableIterable英文意思为:可迭代的、迭代器、可遍历的.Iterable接口是java 集合框架的顶级接口,实现此接口使集合对象可以通过迭代器遍历自身元素Iterable 接口中定义了iterator方法,该方法会返回一个迭代器。Iterator 接口提供了遍历合集中元素的方法。修饰符和返回值方法名描述Iteratoriterator()返回一...原创 2019-04-03 20:30:07 · 331 阅读 · 0 评论 -
java基础:13.1 集合框架 - 概述
1、概述Java集合框架大部分在java.util包中,此外还有一系列的并发集合在java.util.concurrent包中.在Java 7之后添加了泛型机制,使集合框架中在运行时期可能出现的类型转换问题,提前到编译时期来检查。2、整体框架从上图可以看出,java集合框架主要分两大类型,一种是集合(Collection),另一种是图(Map),Collection我们可以理解为一个大小可...原创 2019-04-03 20:26:35 · 343 阅读 · 0 评论 -
java基础:12.9 File类总结、stream流总结
File类总结1、文件的创建与删除可以使用File类创建一个文件对象,File类构造方法:方法意义举例File(String pathname)将给定路径名字字符串转换为抽象路径来创建一个新File实例File f = new File("f:/java/t1.txt);File(String parent ,String child)根据...原创 2019-03-27 09:50:07 · 235 阅读 · 0 评论 -
java基础:12.8 综合练习
复制文件是常见的IO操作,设计如下方法,实现复制源文件srcFile到目标文件destFilepublic static void copyFile(String srcFile, String destFile){} // 复制文件 public static void copyFile(String srcFile, String destFile){ File ...原创 2019-03-27 09:24:21 · 381 阅读 · 1 评论 -
java基础:12.7 对象流 ObjectInputStream、ObjectOutputStream
对象流指的是可以直接把一个对象以流的形式传输给其他的介质,比如硬盘一个对象以流的形式进行传输,叫做序列化。 该对象所对应的类,必须是实现Serializable接口public class Main { public static void main(String[] args) { Zoom z1 = new Zoom(); z...原创 2019-03-26 21:46:35 · 211 阅读 · 0 评论 -
java基础:12.6 数据流 DataInputStream、DataOutputStream
DataInputStream 数据输入流DataOutputStream 数据输出流使用数据流的writeUTF() 和 readUTF() 可以进行数据的格式化顺序读写。注: 要用DataInputStream 读取一个文件,这个文件必须是由DataOutputStream 写出的,否则会出现EOFException,因为DataOutputStream 在写出的时候会做...原创 2019-03-26 21:33:27 · 225 阅读 · 0 评论 -
java基础:12.5 缓存流 BufferReader、 PrintWriter、flush
1. Review上两节学过的字节流和字符流,其弊端是在每一次读写的时候,都会访问硬盘。 如果读写的频率比较高的时候,其性能表现不佳。为了解决以上弊端,采用缓存流。 缓存流在读取的时候,会一次性读较多的数据到缓存中,以后每一次的读取,都是在缓存中访问,直到缓存中的数据读取完毕,再到硬盘中读取。缓存流在写入数据的时候,会先把数据写入到缓存区,直到缓存区达到一定的量,才把这些数据,一起写入到硬盘...原创 2019-03-26 21:23:23 · 322 阅读 · 0 评论 -
java基础:12.4 字符流 Reader Writer
字符流上一节学会了字符流的操作方法,InputStream ,OutputStream。本节学习专门用于字符的形式读取和写入数据的方法Reader 字符输入流Writer 字符输出流...原创 2019-03-20 14:13:02 · 277 阅读 · 0 评论 -
java基础:12.3 字节流 InputStream、OutputStream、文件合并拆分
不同介质间进行数据交互,使用数据流来实现。InputStream是字节输入流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。FileInputStream 是InputStream子类。OutputStream是字节输出流,同时也是抽象类,只提供方法声明,不提供方法的具体实现。FileOutputStream 是OutputStream子类。学习例程,使用输入流读出...原创 2019-03-20 09:55:12 · 650 阅读 · 0 评论 -
java基础:12.2 文本I/O(二)File类、遍历
在12.1 小节我对IO有了基本的认识。这一节主要是整理一下1. File 类首先,File属于的类:java.io.file类。斜杠/ 是Java的目录分隔符。 在Windows 中目录的分隔符是反斜杠(\)。File 对象封装了文件或路径的属性,但是它既不包括创建文件的方法,也不包括从/ 向文件读/ 写数据(称为数据输入输出,简称I/O) 的方法。为了完成I/O 操作,需...原创 2019-03-15 13:59:26 · 528 阅读 · 0 评论 -
java基础:12.1 文本I/O(一)
1、java.io.file类在Windows 中目录的分隔符是反斜杠(\)。但是在Java 中,反斜杠是一个特殊的字符,应该写成\\ 的形式斜杠(/) 是Java的目录分隔符构建一个File 实例并不会在机器上创建一个文件。不管文件是否存在,都可以创建任意文件名的File 实例。可以调用File 实例上的exists()方法来判断这个文件是否存在。public cla...原创 2019-01-15 20:30:34 · 297 阅读 · 0 评论 -
java基础:12.1 异常处理
异常处理的优点:它能使方法抛出一个异常给它的调用者,由调用者处理该异常。 try catch finally throws1、一般形式throw new ArithmeticException("XXX");//java.lang.Arithmetic...原创 2019-01-12 16:06:15 · 260 阅读 · 0 评论 -
java基础:11.1 递归
之前学C语言时对递归有了较多了解,这部分主要把题目的代码都自己实现一遍。知识点不再记录了import java.io.File;import java.util.Scanner;public class ComputeFactorial { public static void main(String[] args) { // TODO Auto-generated metho...原创 2019-02-22 18:46:29 · 204 阅读 · 0 评论 -
java基础:10.6 事件驱动
当运行一个JAVA GUI程序时,程序和用户进行交互,并且事件驱动它的执行。这叫事件驱动编程。产生一个事件并且触发它的组件称为事件源对象,或者简单称为源对象或者源组件。例如,一个按钮是一个按钮单击动作事件的源对象。一个事件是一个事件类的实例。可以通过EventObject 类中的getSource()实例方法来确定一个事件的源对象Java 事件类的根类是java.util.EventObjec...原创 2019-01-26 16:44:11 · 652 阅读 · 0 评论