- 博客(53)
- 收藏
- 关注
原创 15、String类(SringBuffer 类、 StringBuilder 类)
一、String的特性1、String是一个final类,代表不可变的字符序列.不可被继承。2、字符串是一个常量,使用“ ”来表示, 他们的值在创建之后不能更改。3、String实现了Serializable接口,表示字符串是支持序列化的实现了Comparable接口,表示字符串可以比较大小4、String 内部定义了final char[] value 数组用于存储字符串数据5、String代表不可变的字符字符序列。简称:不可变性。体现:当字符串重新赋值时,需要重新指
2021-01-20 00:45:30
292
原创 15、JDK 8 中的日期时间API
JDK 8 中的日期时间API一、新的时间日期API1、第三次引入的API是成功的, 并且Java 8中引入的java.time API 已经纠正了过去的缺陷,将来很长一段时间内它都会为我们服务。2、Java 8 吸收了 Joda-Time 的精华,以一个新的开始为 Java 创建优秀的 API。新的 java.time 中包含了所有关于本地日期(LocalDate)、本地时间(LocalTime)、本地日期时间(LocalDateTime)、时区(ZonedDateTime)和持续时间
2021-01-20 00:41:24
319
原创 15、JDK 8 之前的时间 API
一、java.lang.System类System类提供的public static long currentTimeMillis()用来返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差。@Testpublic void test(){ long time = System.currentTimeMillis(); //时间戳,可用于生成订单号}此方法适于计算时间差。计算世界时间的主要标准有:UTC(Coordinated Universal
2021-01-20 00:37:01
184
原创 15、★ java比较器(Comparable 类 、Comparator类)
Java的比较器在Java中经常会涉及到对象数组的排序问题,那么就涉及到对象之间的比较问题。Java实现对象排序的方式有两种:自然排序: java.lang.Comparable定制排序: java.util.Comparator一、自然排序: java.lang.Comparable使用步骤让要排序的类实现cmparable接口重写comparaTo()方法(可以用String 中的方法)Comparable接口强行对实现它的每个类的对象进行整体排序。这种排序
2021-01-20 00:35:21
198
原创 16、异常处理
异常处理概述异常概述与异常体系结构常见异常++异常处理机制一:try-catch-finally++++异常处理机制二:throws++手动抛出异常:throw + 异常类型用户自定义异常类一、异常概述与异常体系结构异常:在Java语言中, 将程序执行中发生的不正常情况称为“异常” 。(开发过程中的语法错误和逻辑错误不是异常)Java程序在执行过程中所发生的异常事件可分为两类:Error: Java虚拟机无法解决的严重问题。 如: JVM系统内部错误、 资源
2021-01-20 00:33:04
1078
原创 17、多线程
多线程目录一、基本概念:程序、进程、线程二、线程的创建和使用三、线程的生命周期四、线程的同步五、线程的通信六、JDK 5.0新增的线程创建方式一、基本概念:程序、进程、线程1、程序(program),是为完成特定任务、用某种语言编写的一组指令的集合。即++指一段静态的代码++,静态对象。2、进程(process),是程序的一次执行过程,或是++正在运行的一个程序++。是一个动态的过程:有它自身的产生、存在和消亡的过程。 ——生命周期如:运行中的QQ,运行中的MP3播放器程序是静态的
2021-01-18 23:09:55
194
原创 20、泛型
泛型与File目录1、为什么要有泛型2、在集合中使用泛型3、自定义泛型结构4、泛型在继承上的体现5、通配符的使用6、泛型应用举例一、为什么要有泛型1、理解:标签 //在集合中使用泛型的情况 @Test public void test1(){ ArrayList list = new ArrayList(); //需求:存放学生的成绩 list.add(34); list.add(84);
2021-01-18 23:03:55
129
原创 对数据类型的操作
对Blob数据类型的操作/** * @Auther: Alex * @Date: 2020/12/26 - 12 - 26 -23:28 * @Description: 测试使用ProparedStatement操作Blob类型的数据 * @Verxion: 1.0 */public class BlobTest1 { //向customers中插入Blob类型的字段 @Test public void test1() throws Exception {
2021-01-18 22:52:55
88
原创 6-5 数组队列和链表队列性能对比
【实现】public class Main { public static void main(String[] args) { int opCount = 100000; ArrayQueue<Integer> arrayQueue = new ArrayQueue<>(); LinkedListQueue<Integer> linkedListQueue = new LinkedListQueue<>
2021-01-18 22:51:06
251
原创 5-2 栈的实现
基本功能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-G3LRZZmK-1610469089793)(D3C0144A7FD44573B9FF652E616CF7C6)]面向对象迭代[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hNhxU9NF-1610469089796)(E0BA029B2D7F4D93A25CFCAED164BEFB)]【Stack接口】public class Main { public static
2021-01-18 22:43:07
87
原创 6-4 改进我们的链表(用以实现队列)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PlRg0Ncr-1610469237605)(7F98D99916094B9DB393F88FD15C1E65)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uZd63k97-1610469237611)(9F30BF730F9D4DB89FC33CC2B04FB321)]【实现】public class LinkedListQueue<E> implements Queue&
2021-01-18 22:42:55
95
原创 8-2测试归并排序的性能
验证复杂度为 O(nlogn)public static void main(String[] args) { int [] dataSize = {100000,1000000}; for(int n:dataSize){ Integer[] data = ArrayGenerator.generateRandomArray(n,n*100); long start = System.nanoTime();//纳秒
2021-01-18 22:42:01
105
原创 10-1 二分查找
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HwysHLUx-1610469964685)(22D67B16450440C2999668867603ABE9)]【递归版本实现】public class BinarySearch { private BinarySearch() { } public static <E extends Comparable<E>> int search(E[] arr, E target)
2021-01-18 22:41:18
146
原创 6-3 链表与数组栈的性能比较
【实现】public static void main(String[] args) { int opCount = 100000; ArrayStack<Integer> arrayStack = new ArrayStack<>(); LinkedListStack<Integer> linkedListStack = new LinkedListStack<>(); double time
2021-01-18 22:40:17
105
原创 JDBC 获取数据库连接的五种方式
public class ConnectionTest1 { //方式一 @Test public void test() throws SQLException { Driver driver = new com.mysql.cj.jdbc.Driver(); //在mysql中会显示时区异常 String url = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
2021-01-18 22:40:08
247
原创 JDBC 对Blob数据类型的操作以及大批量插入数据
对Blob数据类型的操作/** * @Auther: Alex * @Date: 2020/12/26 - 12 - 26 -23:28 * @Description: 测试使用ProparedStatement操作Blob类型的数据 * @Verxion: 1.0 */public class BlobTest1 { //向customers中插入Blob类型的字段 @Test public void test1() throws Exception {
2021-01-15 00:25:08
191
原创 MySQL 常见数据类型
数值型: 整形 tinyint | smallint | mediumint | int、integer | bigint 小数 定点型 dec(m,d) | decinal(m,d) 浮点型 float(m,d) | double(m,d)字符型 较短的文本 :char | varchar 较长的文本 : text | blob (较长的二进制数据) 日期型 date | datetime | timestamp | time | year一、整形整形 tinyint | .
2021-01-15 00:22:58
154
原创 MySQL语言基础
## 本单元目标二、数据库的相关概念 DBMS、DB、SQL三、数据库存储数据的特点四、初始MySQL MySQL产品的介绍 MySQL产品的安装 ★ MySQL服务的启动和停止 ★ MySQL服务的登录和退出 ★ MySQL的常见命令和语法规范 五、DQL语言的学习 ★ 基础查询 ★ 条件查询 ★ 排序查询
2021-01-15 00:21:19
231
原创 MySQL TCL语言学习
tclTransaction 事务Control 控制Language 语言事务:一个或一组sql语句组成一个执行单元,特点:这个执行单元要么全部执行,要么全部不执行案例: 转账 张三丰给杨过转账500元张三丰 1000杨过 1000update 表名 set 张三丰的余额=500 where name = '张三丰';update 表名 set 杨过的余额=1500 where name = '杨过'# 查看存储引擎(show engines;)SHOW
2021-01-15 00:16:15
128
原创 MySQL 中的过程和函数
存储过程和函数存储过程和函数:类似java中的方法存储过程:自足预先编译好的SQL语句的集合,理解成批处理语句好处:1、提高代码的重用性2、简化操作3、减少了编译次数并且减少了和数据可服务器的连接次数,提高了效率一、创建函数语法:create procedure 存储过程名(参数列表)begin 存储过程体、方法体(一组合法有效的SQL语句)end注意1、begin - end 语句的作用类似于java中的{}2、参数泪飙包含三部分 参数模式 参数名 参数类型
2021-01-15 00:12:47
563
原创 MySQL 中的变量
变量分类系统变量 全局变量 会话变量自定义比变量 用户变量 局部变量一、系统变量说明:1、变量有系统提供,不是用户定义,属于服务器层面2、如果是全局变量级别,则需要加global, 如果是会话级别,则需要加session, 如果不写,则默认是session.使用的语法:1、查看所有的全局变量show global variables;2、查看所有的会话变量show session variables;3、查看满足条件的部分系统变量show glo
2021-01-15 00:11:39
126
原创 23、反射机制
反射机制目录一、java反射机制的概述二、理解Class类并获取Class示例三、类的加载与ClassLoader的理解四、创建运行时类的对象五、获取与形式类的完整结构六、调用运行时类的 指定结构七、反射的应用:++动态代理++一、java反射机制的概述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OtR8Xi3X-1610467572851)(E38E3A55A99346B3937CBAA1E62477F9)][外链图片转存失败,源站可能有防盗链机制,
2021-01-15 00:10:15
367
2
原创 21、IO流
IO流目录一、File类的使用二、IO流原理及流的分类三、节点流四、缓冲流五、转换流六、标准输入、输出流七、打印流八、数据流九、对象流十、随机存储文件流十一、NIO.2中Path、 Paths、Files类的使用一、File类的使用(一)、File类的使用1、File类的一个对象,代表一个文件或一个文件目录(俗称文件夹)2、File类声明在Java.io包下3、相对路径:绝对路径:4、并未涉及到写入湖泊读取问价内容的的操作,如果需要读取或写入文件 内容,必须使用IO流
2021-01-15 00:09:46
342
原创 21、网络编程
网络编程目录一、网络编程概述二、网络通信要素概述三、通信要素1:ip和端口号四、通信要素2:网络协议五、TCP网络编程六、UDP网络编程七、URL编程一、网络编程概述网络编程中有两个主要问题1、如何准确地定位网络上一台或多台主机,定位主机上的特定的应用2、找到主机后如何可靠高效地进行数据传输二、网络通信要素概述[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zaCuoSBb-1610467723756)(22ED4BE1920D4D42B0576
2021-01-15 00:09:06
143
原创 23、java8新特性(Lambda表达式、函数式接口、方法引用、构造器引用、Stream API、optional类)
目录== 一、Lambda表达式==二、函数时(Functional)接口三、方法引用与构造器引用四、强大的Stream API五、Optional类一、Lambda表达式Lanmbda表达式举例1[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fbhesQXo-1610467272139)(407A1EF7F6B8445BAE2AF15CCCD9818E)]Lanmbda表达式举例2[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im
2021-01-15 00:08:13
276
1
原创 7-3 使用递归实现链表
【实现】public class LinkedList<E> { private class Node{ public E e; public Node next; public Node(E e, Node next){ this.e = e; this.next = next; } public Node(E e){ this
2021-01-14 00:39:55
162
原创 6-2 使用链表实现栈
【实现】public class LinkedListStack<E> implements Stack<E> { private LinkedList<E> list; public LinkedListStack(){ list = new LinkedList<>(); } @Override public int getSize() { return list.getSize(
2021-01-14 00:39:05
84
原创 8-1归并排序的实现
基本思想[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-feZ2bhuI-1610469446633)(199870C6B84A4C519FF8BE51F2A9D9E0)]复杂度 O(nlogn)核心问题:如何进行归并比较A[0] 和 B[0]哪个小,取出小的元素,继续比较【实现】public class MergeSort<E>{ private MergeSort(){} public static <E extends
2021-01-14 00:37:55
89
原创 8-3 观察归并算法的微观(迭代)过程
【实现】public class MergeSort<E>{ private MergeSort(){} public static <E extends Comparable<E>>void sort(E[] arr){ sort(arr,0, arr.length-1,0); } public static <E extends Comparable<E>>void sort(E[] arr,
2021-01-14 00:35:51
124
1
原创 8-5 自底向上的归并排序算法
【实现】public class MergeSort3 { private MergeSort3(){} public static <E extends Comparable> void sortBU(E[] arr){ E[] temp = Arrays.copyOf(arr, arr.length); int n = arr.length; // 使用插入排序优化 // 遍历一遍,对所有 arr[i, i +
2021-01-14 00:34:48
171
原创 9-1 快速排序的实现
【实现1】(需要开辟额外的空间)public class QuickSort { private QuickSort(){} public static <E extends Comparable<E>> void sort(E[] arr){ E[] temp = (E[])new Object[arr.length]; sort(arr,0,arr.length-1,temp); } public static &
2021-01-14 00:33:54
126
原创 9-2 快速排序的微观解读
【实现】public class QuickSort2 { private QuickSort2(){} public static <E extends Comparable<E>> void sort(E[] arr){ sort(arr,0,arr.length-1,0); } public static <E extends Comparable<E>> void sort(E[] arr,int l,
2021-01-14 00:32:57
132
原创 9-3 优化快速排序对于特殊数组的性能退化问题
【优化1】第一版快速排序的对象是有序数组时,递归深度为O(n),容易造成栈溢出[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hbzHkMhM-1610469804197)(347A6AB82C234141BFBB5292C5705FEE)]使p的索引为[l,r]中的一个随机数,再将他和 l 调换位置public static <E extends Comparable<E>> int partition(E[] arr,int l,int r,
2021-01-14 00:32:14
414
原创 9-5 三路快速排序算法
实现原理[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iTE3pZJe-1610469861174)(C0CEA802827C4C1D86A9E54022CD6E42)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CDNyb47s-1610469861177)(D4AAE62AB0224EC5940178CC8859D23A)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2W9cC6Fw-1610469
2021-01-14 00:31:30
115
原创 10-2 非递归实现leetcode 最小的K
【实现】class Solution { public int findKthLargest(int[] nums, int k) { Random random = new Random(); return selectK(nums,0,nums.length-1,nums.length-k,random); } private int selectK(int[] arr,int l,int r,int k,Random random){
2021-01-14 00:29:58
92
原创 6-1链表的实现
链表的结构[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GaacuLKh-1610469021765)(30C6BB495DAC4DD4B8CC6927C8862AEC)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nICOA4zS-1610469021767)(D9C77D05D4514216A00195ACF10EFFA1)]数组与链表的对比[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VbnP80
2021-01-13 00:31:00
171
原创 5-7 双端队列的实现
基本功能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gtFed5es-1610468959650)(CCF7A000C2C44021847001DD157369D4)]【实现】public class ArrayDeque<E> implements Deque<E> { private E[] data; private int front; private int tail; private int size
2021-01-13 00:29:56
104
原创 5-6 数组队列饿汉循环队列性能的比较
【实现代码】分别进行10 万次出队 和 入队public class Main { //测试使用q 运行opCount 个 enqueue 和 的dequeue 操作所需要的时间,单位:秒 private static double testQueue(Queue<Integer> q,int opCount){ long start = System.nanoTime(); Random random = new Random();
2021-01-13 00:28:57
90
原创 5-4数组队列的实现
说明对垒也是一种线性结构相比数组,对垒对应的操作是数组的子集只能从一端(队尾)添加元素,只能从另一端(队首)取出元素队列是一种先进先出的数据结构(First In First Out [FIFO])基本功能[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MFX0T7xf-1610468823676)(6A1A676DE35E431EB0E8B605B6482233)]【Queue接口】public class ArrayQueue<E> implem
2021-01-13 00:27:33
103
原创 4-1 属于我们自己的动态数组
主要功能增删改查看数组的容量(能装多少东西)查看数组的长度(装了多少东西)[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j2ThOhiu-1610468614451)(C14C521FE9AD47E088F48D4BE50E395C)]【实现1】/** * @Auther: Alex * @Date: 2021/1/4 - 01 - 04 -19:57 * @Description: 自定义的数组 * @Verxion: 1.0 */publi
2021-01-13 00:24:19
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人