Java
Q1nyuChen
Rookie on da way
展开
-
随机快速排序
/** * 快速排序3.0 —— 随机快排,时间复杂度收敛于 O(NlogN) */public class QuickSort { /** * * @param arr 需要排序的数组 * @param L 需要排序部分的左边界 * @param R 需要排序部分的右边界 */ public static ...原创 2020-01-31 18:33:38 · 144 阅读 · 0 评论 -
荷兰国旗问题(给出划分值的partition)
public class NeitherLandFlag { /** * * @param arr 目标数组 * @param L 需要分组的范围的左边界 * @param R 需要分组的范围的右边界 * @param p 划分值 * @return */ public int[] partiti...原创 2020-01-31 17:18:58 · 340 阅读 · 0 评论 -
HashMap源码 Review
版本:jdk1.8类结构:类注释原文翻译:Map接口基于Hash table的实现。这个实现提供所有可选择的map操作,并且允许 NULL Values 和 NULL key。( HashMap 大致相当于 HashTable, 只是它是非同步的且允许空值。)这个类对于map的顺序没有保证;尤其是,它不能保证顺序能随着时间推移将保持不变。假设哈希函数能将元素正确地散列分布在桶中,这个实...原创 2019-11-21 20:42:33 · 89 阅读 · 0 评论 -
File类
ConstructorFile(File parent, String child) Creates a new File instance from a parent abstract pathname and a child pathname string.通过 父抽象路径名字符串 和 子路径名字符串,创建一个新的文件实例File(String pathname) Creates...原创 2019-12-06 15:49:31 · 239 阅读 · 0 评论 -
Java:为什么InputStream的read()方法返回值是int而不是byte?
Ref: https://stackoverflow.com/questions/4659659/why-does-inputstreamread-return-an-int-and-not-a-byteBecause a byte can only hold -128 until 127, while it should return 0 until 255 (and -1 when ther...原创 2019-12-07 12:20:40 · 315 阅读 · 0 评论 -
Java: IO流(字节流、字符流、输入流、输出流)
概念流 表示从一个文件将数据返送到另一个文件。选择当前程序作为参照物从一个文件中读取数据到程序叫做输入流从程序输出数据到另一个文件叫做输出流数据源–>程序: 输入流程序–>目标数据源:输出流注意:当编写IO流的程序时候一定要记得关闭流Java中流的分类按流向: 输出流 : OutputStream 和 Writer 作为基类输入流: InputStream 和 ...原创 2019-12-07 16:31:07 · 183 阅读 · 0 评论 -
Java: IO流(标准输入、标准输出、打印流等)
Class CharArrayReader这个类实现了一个可以用作字符输入流的字符缓冲区。常用方法int read() Reads a single character.读取一个字符int read(char[] b, int off, int len) Reads characters into a portion of an array.读取多个字符到数组中测试publi...原创 2019-12-09 17:19:18 · 118 阅读 · 0 评论 -
多线程:线程与进程、线程的实现方式、生命周期、常用API
线程的概念程序:Program,一个指令的集合。进程:Process,正在执行的程序进程是程序的一次静态态执行过程,占用特定的地址空间。每个进程都是独立的,由cpu,data,code三部分组成缺点:内存的浪费, cpu的负担线程:是进程中一个“单一的连续控制流程”线程又称为轻量级进程(lightweight process)线程们同时运行,彼此独立。一个进程可以拥有多个并行(c...原创 2019-12-10 13:15:34 · 183 阅读 · 0 评论 -
多线程:线程同步与死锁(卖票案例)、线程通信、生产者与消费者
卖票案例5个窗口同时卖票:使用Runnable接口,只创建了一个ticket1对象,5个线程共享此对象,实现了资源共享。public class ticket1 implements Runnable { private int ticket = 5; @Override public void run(){ for (int i = 0; i ...原创 2019-12-10 20:42:41 · 238 阅读 · 0 评论 -
Socket 套接字
Socket 概念网路上的两个程序通过一个双向的通信连接实现数据的交换这个连接的一端称为一个socketJava中使用Socket完成对TCP程序的开发,使用此类可以建立可靠的、双向的、持续性的、点对点的通讯连接在socket的程序开发中,服务器使用ServerSocket等待客户端的连接对于java的网络程序来讲,每一个客户端都使用一个Socket对象表示基于TCP协议的Sock...原创 2019-12-14 22:15:32 · 66 阅读 · 0 评论 -
Java8: Lambda表达式
简介Lambda表达式是 Java8 中最重要的新功能之一。使用 Lambda 表达式可以替代只有一个抽象函数的接口实现,告别匿名内部类,代码看起来更简洁易懂。Lambda表达式同时还提升了对集合、框架的迭代、遍历、过滤数据的操作。应用场景任何有函数式接口的地方。函数式接口:只有一个抽象方法(Object类中的方法除外)的接口例子public class LambdaDemo { ...原创 2019-12-16 21:52:46 · 173 阅读 · 0 评论 -
Stream API
Stream是一组用来处理数组、集合的APIStream运行机制Stream分为 源source,中间操作,终止操作流的源可以是一个数组、一个集合、一个生成器方法,一个I/O通道等等。一个流可以有零个和或者多个中间操作,每一个中间操作都会返回一个新的流,供下一个操作使用。一个流只会有一个终止操作Stream只有遇到终止操作,它的源才开始执行遍历操作Stream的创建API:stat...原创 2019-12-17 19:14:56 · 64 阅读 · 0 评论 -
排序算法 (Java)
时间复杂度 Big O算法花费时间随着问题规模的扩大的变化不考虑必须要做的操作:循环、赋初值、程序初始化…;不考虑常数项;不考虑低次项;一般时间复杂度都是“最差”的情况E.g.:访问数组某个位置的值: O(1)访问链表某个位置的值: O(n)求数组平均数:O(n)选择排序 SelectionSort最简单最没用: O(n^2), 不稳定找到最小的数的位置(索引)...原创 2019-12-24 17:31:54 · 80 阅读 · 0 评论 -
JDBC
概念java database connectivityJava 反问控制数据库里面数据的一套标准java.sql.Driver : 驱动java.sql.Connection 连接java.sql.Statement 静态处理块java.sql.PreparedStatement 预处理块java.sql.ResultSet 结果集java.sql.ResultSetMetaDa...原创 2020-01-04 11:23:15 · 65 阅读 · 0 评论 -
Java 反射
概念JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的属性和方法;对于任意一个对象,都能够调用它的任意一个属性和方法;这种动态获取的信息以及动态调用对象的方法的功能称为JAVA的反射机制。想要解剖一个类,必须要先获取该类的字节码文件对象。而解剖使用的就是Class类中的方法,所以要先获取到每一个字节码文件对应的Class类型的对象。类加载过程当Java程序需要使用某个...原创 2020-01-04 21:12:51 · 65 阅读 · 0 评论 -
DBUtils
概念DBUtils 是封装的JDBC工具类,可以方便的进行增删改查。使用导入DBUtils的jar包。最好自己先写一个工具类来获取Connection对象。DBUtils 提供了多种 ResultSetHandler 的实现类来转换ResultSet中的数据,我们也可以自己定义实现类。ArrayHandler :将ResultSet中第一行的数据转化成对象数组 。ArrayLis...原创 2020-01-04 21:29:01 · 71 阅读 · 0 评论 -
深入Java虚拟机——读书笔记
书:深入JAVA虚拟机第二版第一章Java体系结构包括4个技术:Java程序设计语言Java class文件格式Java应用编程接口Java虚拟机一个Java程序可以有两种装载器:启动类装载器(系统中唯一的),包括Java API自定义装载器(多个)每个类被装载时,Java虚拟机都会监视这个类。当被装载的类引用了另外一个类时,虚拟机会使用装载这个类的类装载器装载被引用...原创 2020-01-16 16:37:13 · 151 阅读 · 0 评论