自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(38)
  • 资源 (1)
  • 收藏
  • 关注

原创 JDBC-08-1--数据库事务-事务的ACID属性

事务的ACID属性原子性(Atomicity)原子性是指事务一个不可分的工作单位。事务中的操作要么都发生,要么都不发生一致性(Consistency)事务必须使数据库从一个一致性状态转换到另外以一个一致性状态隔离性(Isolation)事务的隔离性是指一个事务的执行不能被其他事务干扰,即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务直接不能互相干扰持久性(Durability)持久性是指一个事务一旦被提交,他对数据库中数据打改变就是永久性的,接下来

2020-12-27 23:06:24 151

原创 JDBC-08-2--数据库事务-JDBC事务处理

数据库事务什么叫数据库事务事务:一组逻辑操作单元,使数据从一种状态到另外一种状态,一组逻辑操作单元,一个或者多个DML操作事务处理的原则:保证所有事务都为一个工作单元执行 即使出现了故障,都不能改变这种方式当一个事务中执行了多个操作时,要么所有的事务都被提交(commit) , 那么这些修改就永久保存下来: 要么数据库管理系统将放弃所作的所有修改,整个事务回滚(roolBack) 到最初始状态JDBC事务处理数据一旦提交 就不会发生回滚那些操作会导致数据的自动提交?DDL数据定

2020-12-27 00:02:56 178

原创 构造遍历线索化二叉树{Java}

线索化二叉树文章目录线索化二叉树线索化二叉树基本的介绍线索化二叉树应用案例代码实现:准备工作堆二叉树进行中序线索化的方法遍历线索化二叉树的方法完整代码将数列{1,3,6,8,10,14} 构成一个二叉树 : n+1=7问题分析:当我们对上面的二叉树进行中序遍历时,数列为{8,3,10,1,14,6}但是6,8,10,14 这几个节点的左右指针,并没有完全利用上如果我们希望充分的利用各个节点的左右指针,让各个节点可以指向自己的前后节点,解决方案—线索化二叉树线索化二叉树基本的介绍n个结

2020-12-26 14:41:15 123

原创 顺序存储二叉树

顺序存储二叉树文章目录顺序存储二叉树概念顺序储存二叉树的特点:代码概念由数据的存储来看,数组存储方式和树的存储方式可以转换,即数组可以转换成树,树也可以转换称为数组顺序储存二叉树的特点:顺序二叉树通常就只考虑二叉树第n个元素的左子节点为2*n+1;第n个元素的右子节点为2*n+2;第n个元素的父节点为(n-1)/2;n 表示二叉树中的第n个元素需求: 给你一个数组 {1,2,3,4,5,6,7}, 要求以二叉树前序遍历的方式进行遍历。 前序遍历的结果应当为1,2,4,5,3,6,

2020-12-25 20:15:20 132

原创 Java29- 反射

反射反射就是根据字节码文件,反射类的信息,字段,方法,构造方法等类的内容,根据字节码文件创建对象,调用方法的技术文章目录反射反射的基础,是class的对象反射类的信息创建Class对象反射类的信息修饰类 `Modifiers:修饰器`类名父名接口通过反射技术访问字段创建Class对象,反射name字段通过反射技术创建对象(实例),默认调用类的无参构造设置字段的值返回字段的值访问私有字段 age通过反射技术调用方法代码Person类创建Class对象的方式反射类的信息通过反射技术访问字段通过反射技术调

2020-12-25 13:09:11 319

原创 十大排序8--堆排序(Heap Sort)

堆排序文章目录堆排序基本介绍大顶堆举例说明堆排序的基本思想:简单的思路代码实现将一个数组(二叉树), 调整成一个大顶堆//编写一个堆排序的方法完整代码图解:基本介绍堆排序是利用堆这种数据结构二设计的一种排序算法,堆排序是一种选择排序,他的最好最坏,平均复杂度都为O(nlogn), 它也是不稳定排序堆是具有一下性质的完全二叉树:每个节点的值都大于或者等于其左右孩子节点的值,称为大顶堆,没有要求结点的左孩子的值和右孩子的值的关系每个结点的值都小于或等于其左右孩子结点的值, 称为小顶堆大顶堆举例说

2020-12-20 17:35:28 478

原创 二叉树的基本操作 遍历,删除,查找Java(附带完整代码)

树结构的基础部分文章目录树结构的基础部分二叉树为什么要使用二叉树树示意图案例分析**前序遍历的方法****中序遍历****后序遍历**二叉树-查找指定节点前序遍历查找中序遍历查找后序遍历查找二叉树-删除节点代码实现递归删除结点完整代码二叉树为什么要使用二叉树数组方式的分析:优点:通过下标方式访问元素,速度快,对于有序数组,还可以通过二分查找提高检索速度缺点: 如果要检索具体某个值,或者插入值(按一定的顺序)回整体移动,效率低.2 链式储存方式的分析:优点: 在一定程度上对数组储存方式的优

2020-12-17 16:14:35 166

原创 LC121-买卖股票的最佳时机

121. 买卖股票的最佳时机难度简单1344给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。注意:你不能在买入股票前卖出股票。示例 1:输入: [7,1,5,3,6,4]输出: 5解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。 注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格

2020-12-16 16:18:05 206 1

原创 Java28- 线程同步[继承Thread,实现Runnable]

线程同步并发与并行并行:多个CPU同时执行多个任务, 比如: 多个人同时做不同的事并发: 一个CPU(采用时间片)同时执行多个任务,比如: 秒杀,多个人做同一件事线程同步:多个线程同时读写同一份共享资源,可能会引起从图,所以引入线程"同步"机制,即各线程要有先来后到同步就是排队+锁:几个线程之间要排队,一个个对共享资源操作,而不是同时进行操作为了保证数据在方法中被访问的正确性,在访问时加入锁机制模拟卖票两个窗口分别售票,票数为10张分别使用继承Thread和实现Runna

2020-12-16 08:22:20 655 1

原创 java27-线程与进程

java-线程文章目录java-线程程序,进程,线程线程和进程的关系多线程的概念多线程的使用:多线程的好处多线程的缺点创建线程:继承Thread类的方式**thead类**test类实现Runnable接口的方式继承Thread和实现Runnable的联系与区别实现Runningable的好处:Thread类中方法Thread类构造方法方法:Thread常用方法:调度策略:java的调度方法:Thread类有如下3个静态常量来表示优先级线程的生命周期Java中的线程分为两类:案例案例二:程序,进程,线程

2020-12-16 00:50:05 578

原创 LC682-棒球比赛

682. 棒球比赛难度简单158你现在是一场采特殊赛制棒球比赛的记录员。这场比赛由若干回合组成,过去几回合的得分可能会影响以后几回合的得分。输入:ops = [“5”,“2”,“C”,“D”,"+"]输出:30解释:“5” - 记录加 5 ,记录现在是 [5]“2” - 记录加 2 ,记录现在是 [5, 2]“C” - 使前一次得分的记录无效并将其移除,记录现在是 [5].“D” - 记录加 2 * 5 = 10 ,记录现在是 [5, 10].“+” - 记录加 5 + 10 = 15

2020-12-15 16:04:08 140

原创 LC049-字母异位词分组

49. 字母异位词分组难度中等537给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。示例:输入: ["eat", "tea", "tan", "ate", "nat", "bat"]输出:[ ["ate","eat","tea"], ["nat","tan"], ["bat"]]1.先排序再判断字母异位词就是两个字符串中的字母都是一样的,只不过顺序被打乱了找出来他们进行排序利用map进行,判断,储存HashMap<String

2020-12-13 18:04:28 153

原创 hashTable(哈希表)Java实现

hashTable(哈希表)文章目录hashTable(哈希表)哈希表的介绍详细的hash请看应用:hashtable分析**键值(雇员)**链表(存放雇员)**创建HashTab 管理多条链表**具体操作add: 添加雇员在hashtable中//添加雇员到链表list: 显示雇员find: 查找雇员哈希表的介绍哈希表(Hashtable 也叫散列表) 是根据关键码值(key value) 而直接进行访问的数据结构,也就是说他是用过关键码值映射到表中一个位置来访问记录,以加快访问进度,这个映射函数

2020-12-13 15:58:22 204

原创 LC242-有效的字母异位词

242. 有效的字母异位词难度简单314给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。示例 1:输入: s = "anagram", t = "nagaram"输出: true示例 2:输入: s = "rat", t = "car"输出: false解法一:将其转成数组之后,排序,作比较class Solution { public boolean isAnagram(String s, String t) { if (

2020-12-12 19:48:22 181

原创 LC239-滑动窗口最大值

239. 滑动窗口最大值给定一个数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值。进阶:你能在线性时间复杂度内解决此题吗?示例:输入: nums = [1,3,-1,-3,5,3,6,7], 和 k = 3输出: [3,3,5,5,6,7] 解释: 滑动窗口的位置 最大值--------------- --

2020-12-11 19:37:48 201

原创 快速排序[综合优化写法]

快速排序优秀快排写法此文章python写法快速排序使用分治法(Divide and conquer)策略来把一个序列(list)分为两个子序列(sub-lists)。步骤如下从数列中挑出一个元素,称为基准(pivot)分区(partition):遍历数列,比基数小的元素放在左边,比他大的放在右边于是此次分区结束后,该基准就处于数列的中间位置,其左边的数全比它小(称为小与子序列),右边的数全比他大(称为大于子序列)。这样一次排序就造成了整体上的有序化。子数列排序:将小于子数列和大于子

2020-12-11 17:31:28 433

原创 Java常用的四种查找方法 1. 顺序查找 2. 二分查找 3. 插值查找 4. 斐波那契查找

查找方法:在Java常用的四种查找方法顺序查找二分查找插值查找斐波那契查找目录查找方法:顺序查找二分查找非递归二分法递归插值查找算法斐波那契(黄金分割法)查找算法基本介绍原理mid=low+F(k-1)-1if (key < temp[mid])if (key > temp[mid])顺序查找无序,有序均可利用循环依次进行遍历进行查找二分查找对一个有序数组进行二分查找{1,8, 10, 89, 1000, 1234} , 输入一个数看看该数组是否存在此数, 并且求出下标

2020-12-10 11:27:30 564

原创 LC155-最小栈

155. 最小栈难度简单745设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。push(x) —— 将元素 x 推入栈中。pop() —— 删除栈顶的元素。top() —— 获取栈顶元素。getMin() —— 检索栈中的最小元素。示例:输入:["MinStack","push","push","push","getMin","pop","top","getMin"][[],[-2],[0],[-3],[],[],[],[]]输出:[nul

2020-12-09 18:56:01 345

原创 LC020-有效的括号

20. 有效的括号难度简单2031给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。输入: “()”输出: true输入: “()[]{}”输出: true输入: “(]”输出: false输入: “([)]”输出: false方法一:使用栈,哈希映射(HashMap)使用栈,哈希映射(HashMap)哈希映射

2020-12-09 18:24:17 147

原创 leetcode-----快刷:数组、链表、跳表

快刷:数组、链表、跳表两数之和题目: https://leetcode-cn.com/problems/two-sum/Array 实战题目https://leetcode-cn.com/problems/container-with-most-water/https://leetcode-cn.com/problems/move-zeroes/https://leetcode.com/problems/climbing-stairs/https://leetcode-cn.com/proble

2020-12-07 01:06:55 170

原创 LC0283-移动零--LC026-删除排序数组中的重复项--LC027-移除元素{双指针解决}

283. 移动零https://leetcode-cn.com/problems/move-zeroes/双指针法设置快慢指针j慢指针表示 非零数的前一个下标 慢指针i表示是不是非零数字 快指针 public static void moveZeroes1(int[] nums) { int j = 0; for (int i = 0; i < nums.length; i++) { if (nums[i] != 0) {

2020-12-06 16:37:11 184

原创 LC189-旋转数组

189. 旋转数组输入: [1,2,3,4,5,6,7] 和 k = 3输出: [5,6,7,1,2,3,4]解释:向右旋转 1 步: [7,1,2,3,4,5,6]向右旋转 2 步: [6,7,1,2,3,4,5]向右旋转 3 步: [5,6,7,1,2,3,4]方法一:三次数值的反转第一次: revers(nums, 0, nums.length - 1); 7,6,5,4,3,2,1第二次 revers(nums, 0, k - 1); 5,6,7,4,3,2,1

2020-12-06 16:35:30 195

原创 LC0141-环形链表---LC0142-环形链表 II

141. 环形链表关于链表的小总结利用集合存放数据,不在就就存放数据,进行遍历public boolean hasCycle(ListNode head) { HashSet<ListNode> set = new HashSet<>(); ListNode temp=head; while (temp!=null){ if (set.contains(temp)){ re

2020-12-06 16:34:07 182

原创 LC070-爬楼梯[斐波那契]

70. 爬楼梯https://leetcode-cn.com/problems/climbing-stairs///该数组每个元素的指针对应的是台阶数,元素的值存放的是台阶数对应的方法数不管怎样,数组下标指针肯定是从0开始的,所以要考虑0.有0个台阶,不需要爬,所以没有方法数(但从斐波那契角度,dp[0]=1)dp[1] = 1; //1阶台阶,只有一种方式(1)2阶台阶,有两种方式(1+1, 2), 因为题目设定n是正整数,所以n最小是1,此时如果定义dp的长度是int[n +

2020-12-06 16:31:15 146

原创 LC066-加一

66. 加一示例 1:输入:digits = [1,2,3]输出:[1,2,4]解释:输入数组表示数字 123。 public static void main(String[] args) { int[] ints = new int[]{9, 9, 9, 9}; System.out.println(plusOne(ints)); } public static int[] plusOne(int[] digits) { i

2020-12-06 16:30:17 143

原创 LC021-合并两个有序链表--LC088-合并两个有序数组

21. 合并两个有序链表输入:1->2->4, 1->3->4输出:1->1->2->3->4->4方法一:递归 public ListNode mergeTwoLists(ListNode l1, ListNode l2) { if (l1 == null) { return l2; } if (l2 == null) { return l1;

2020-12-06 16:29:29 147

原创 LC015-三数之和

15. 三数之和https://leetcode-cn.com/problems/3sum/方法一:利用暴力破解注意主要的是去重复if (i > 0 && nums[i - 1] == nums[i]) continue;超时public static List<List<Integer>> threeSum(int[] nums) { Arrays.sort(nums); ArrayList<List&l

2020-12-06 16:28:27 178

原创 LC011-盛最多水的容器

11. 盛最多水的容器https://leetcode-cn.com/problems/container-with-most-water/利用双指针法设置两个指针,一前 一后每次将两个指针对应的面积求出,保存,与前一个面积比较,保存大的将两个指针对应的高度,小的向另外一边进行遍历,重复第二的直到i<j public int maxArea(int[] height) { int i=0; int j=(height.length-1);

2020-12-06 16:27:50 133

原创 LC001-两数之和

1. 两数之和https://leetcode-cn.com/problems/two-sum/方法一:暴力破解 public int[] twoSum(int[] nums, int target) { for (int i = 0; i < nums.length - 1; i++) { for (int j = i + 1; j < nums.length; j++) { if (target == (nums[

2020-12-06 16:27:03 269

原创 javaSE-IO总汇

IO流概述流是有起点和终点的有序字节序列目录IO流File类FileInputStream/FileOutputStream添加链接描述InputStreamReader/OutputStreamWriteBufferedReader/BufferedWriterObjectInputStream/ObjectOutputStreamPrintStream/PrintWriterIO体系分类IO字符流体系结构IO字节流体系结构读写文件输入输出File类​ 读取文件内容使用IO流

2020-12-06 00:28:32 285

原创 javaSE26-- IO流--Print流,对象输入输出流,对象序列化,对象反序列化的过程

Print流print打印流:只做输出没有输入打印分为字节打印流和字符打印流目录Print流PrintWriter: 字符打印流对象输入输出流**作用**:**用法**:**案例一**:对象序列化案例二**一个类声明****对象的输出流**对象的输入流PrintWriter: 字符打印流print流方法可以打印各种类型数据单向输出(从服务器,向客户端,浏览器打印输出网页内容)在开发时, 一般调用e.printStackTrace()把异常信息打印到屏幕上方便程序员调试在部署后

2020-12-05 23:08:51 439

原创 javaSE25-- IO流--字符缓冲流BufferedReader/BufferedWriter

字符缓冲流目录字符缓冲流从键盘上输入文本,把这些文本保存到文件中使用BufferedWriter保存文本到文件使用BufferedReader读取文本文件内容BufferedReader/BufferedWriter也是一种处理流,包装流​ bw.flush(); //清空缓冲区,把数据保存到文件中​ bw.close();br.readLine();从缓冲字符流中读取一行,读到文件末尾返回null从键盘上输入文本,把这些文本保存到文件中 private static voi

2020-12-05 21:16:48 183

原创 javaSE24-- IO流--字符FileReader/FileWriter

目录字符FileReader/FileWriterFileReader建立流通道new FileReader读取文本文件内容,一次读取一个字符数组, 异常处理, 自动关闭FileWriterInputStreamReader/OutputStreamWriter转换流读写字符FileReader/FileWriter以字符为单位读写文件内容, 只能读写纯文本文件, 要求文本文件的编码格式要与当前环境的编码格式兼容FileReader建立流通道new FileReaderFileReader fr

2020-12-05 21:13:54 304

原创 javaSE23-- IO流--字节流中常用类FileInputStream/FileOutputStream

目录字节流中常用类FileInputStream/FileOutputStream读写文件的步骤FileInputStream以字节为单位读取文件的内容以字节为单位读取文件的内容, 循环读取异常处理一次读取一个字节, 手动关闭流, 异常处理从文件中读取字节保存到字节数组中, 异常处理, 自动 关闭流FileOutputStream以字节为单位把数据保存到文件中文件的复制字节流中常用类FileInputStream/FileOutputStream字节输入流 FileInputStream字节输出流

2020-12-05 21:07:50 203

原创 javaSE22-- IO流--流分类

输入及输出的概念目录输入及输出的概念流的分类:输入流/输出流,字节流/字符流InputStream和OutPutStream的子类都是字节流Reader和Writer的子类都是字符流节点流与处理流**根据封装类型不同流又分为**节点流:处理流。输入输出(I/O)把电脑硬盘上的数据读到程序中,称为输入,既input,进行数据read操作从程序往外部设备写数据,成为输出,即output,进行数据的write操作流是有起点和终点的有序字节序列流的分类:输入流/输出流,按照数据的传输方向分为:

2020-12-05 21:05:12 246

原创 javaSE21-- IO流--File类

IO流File类是java.io包中很重要的一个类;File类的对象可以表示文件,还可以表示目录,在程序中一个File类对象可以代表一个文件或目录;File对象可以对文件或目录的属性进行操作,如:文件名、最后修改日期、文件大小等;File对象无法操作文件的具体数据,既不能直接对文件进行读写/操作//在当前目录下创建一个与aaa.txt文件名相关联的文件对象File f1 = new File("aaa.txt");//指明详细的路径以及文件名,请注意双斜线或用反斜杠File f

2020-12-05 01:22:36 439

原创 十大排序7--基数排序(RadixSort)

基数排序基数排序基本思想基数排序是使用空间换时间的经典算法基数排序属于"分配式排序",又称“桶子法” (bucket sort) ,他是通过各个位的值,将排序的元素分配至某些"桶"中,达到排序的作用基数排序法是属于稳定性的排序,基数排序法的是效率高的稳定性排序法基数排序法是桶排序的发展基数排序是1887赫尔曼· 何乐礼发明的。 ,他是实现的将整数位数切割成不同的数字,然后按每个位数分别比较基数排序基本思想将所有待比较数值统一为长度,数位短的数前补零,然后,从最低位开始,依次进行排序

2020-12-03 09:36:56 329

原创 十大排序6--归并排序(MergetSort)

归并排序归并排序,利用归并的思想实现排序,该方法才采用经典的分治策略,成一些小的问题然后递归求解, 而治的阶段则将分的阶段得到各答案"修补"在一起即分而治之归并排序思想示意图 1-基本思想:归并排序思想示意图 2-合并相邻有序子序列:取中间的值作为基准,两边的进行合并.类似于链表合并package com.nie.sort;import java.util.Arrays;/*归并排序 */public class MergetSort { public static

2020-12-03 09:34:24 185

oracle数据库sql-笔记.zip

以思维导图的形式(xmind),呈现oracle数据库知识点.包括(集合操作,处理语句,约束,链接,运算符。函数,表达式,聚合函数,子查询,分组查询,分页查询,视图,序列等)以及数据库的整体框架,以便你更好的学习,阅读。。感谢各位的支持,谢谢大家赏识

2020-04-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除