JAVA
ouuxxxi
/
展开
-
数据库---事务
一.事务的基本介绍概念:如果一个包含多个步骤的业务操作,被事务管理,那么这些操作要么同时成功,要么同时失败。操作:(1)、开启事务: start transaction;(2)、回滚: rollback;(3)、提交: commit;【例子】CREATE TABLE account (id INT PRIMARY KEY AUTO INCREMENT,NAME VARCHAR(10),balance DOUBLE );【添加数据 】INSERT INTO account原创 2020-06-16 18:02:33 · 159 阅读 · 0 评论 -
【网络原理】知识点汇总1
【重点知识概括】网络分层: OSI七层模型(了解)、TCP/IP 四层或五层模型,每一层的代表协议,硬件,技术;网络传输流程:网络互联(了解),局域网(了解),广域网;重点协议:(1) TCP/UDP: 掌握特性、原理和流程;(2) HTTP:掌握协议的格式,及某些细节上作用;(3) 其他的重要协议(在网络传输流程中使用到) : ARP/RARP. DNS. NAT、NATP、MTU...原创 2020-05-07 18:47:17 · 374 阅读 · 0 评论 -
快速排序的详细分析、代码实现以及如何优化(Java)
一、原理从区间中取一个数据作为基准值,按照基准值将区间划分为左右两部分,其中左半部分的数据 < 基准值,右半部分的数据>基准值;按照快排的思想排左半部分;按快排的思想排右半部分;类似于二叉树前序遍历的框架: public static void quickSort(int[] arr,int left, int right){ if(right-left...原创 2020-04-10 21:47:25 · 149 阅读 · 0 评论 -
排序算法之冒泡排序法(Java)
什么是冒泡排序(Bubble Sorting)?通过对待排序序列从前向后(从下标较小的元素开始) ,依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。下面我们来看一个例子:[20,8,-10,9,2]①第一趟排序:[8,20,-10,9,2];[8,-10,20,9,2];[8,-10,9,20,2];[8,-10,9,2...原创 2020-03-25 16:59:15 · 191 阅读 · 1 评论 -
【Java】【斗地主综合案例】
【案例介绍】按照斗地主的规则,完成洗牌发牌的动作。具体规则:使用54张牌打乱顺序,三个玩家参与游戏,三人交替摸牌,每人17张牌,最后三张留作底牌。【案例分析】准备牌:将54张牌,存储到一个集合中,包括大王,小王及其他52张牌;ArrayList poker = new ArrayList<>(54);定义两个数组,一个数组存储牌的花色,一个数组存储牌的序号:...原创 2020-03-24 17:19:20 · 196 阅读 · 0 评论 -
数据结构:二叉树的非递归遍历--详细分析与实现
假设有如图所示的一棵二叉树,我们分别对其前序、中序、后序以及层序进行非递归遍历。 前提:二叉树采用孩子表示法class Node { Node left = null;//指向左子树 Node right = null;//只指向右子树 int val; public Node(int val){ this.val=val; }...原创 2020-03-14 16:23:38 · 361 阅读 · 0 评论 -
leetcode-构造二叉树(分析与实现)
题型一:105. 从前序与中序遍历序列构造二叉树根据一棵树的前序遍历与中序遍历构造二叉树。注意:你可以假设树中没有重复的元素。例如,给出前序遍历 preorder = [3,9,20,15,7]中序遍历 inorder = [9,3,15,20,7]返回如下的二叉树: 3 / \ 9 20 / \ 15 7思路分析:1、从前序遍历结果中...原创 2020-03-11 16:16:50 · 762 阅读 · 0 评论 -
二叉树习题汇总(leetcode基础面试题)
144. 二叉树的前序遍历:链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/给定一个二叉树,返回它的 前序 遍历。示例:输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3]递归算法:class Solution { Lis...原创 2020-03-11 14:33:34 · 132 阅读 · 0 评论 -
【数据结构+算法】递归-----八皇后问题(分析与实现)
一、八皇后问题描述八皇后问题,是一一个古老而著名的问题,是回溯算法的典型案例。该问题是国际西洋棋棋手马克斯.贝瑟尔于1848年提出 : 在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一-列或同-斜线上,问有多少种摆法。二、八皇后问题思路分析 (使用到回溯算法)(1)、第一个皇后先放第一行第- -列(2)、第二个皇后放在第二行第一列、然后判断是否0...原创 2020-03-09 19:21:35 · 455 阅读 · 0 评论 -
【内部类】【概念、分类、用法】
一、概念: 一个类是用来模拟一个事务的,如果一个事务的内部包含另一个事务,那么这就是一个类内部包含另一个事务的。例如:身体和心脏,汽车和发动机。二、分类1、成员内部类(1)定义修饰符 class 外部类名称{ 修饰符 class 内部类名称{ //... }}(2)用法内用外,随意访问;外用内,需要内部对象public class Body { //外...原创 2020-02-27 23:01:05 · 187 阅读 · 1 评论 -
【笔记本USB接口】【接口多态的综合案例】
【基础介绍】笔记本电脑(laptop) 通常具备使用USB设备的功能。定义USB接口,具备最基本的开启功能和关闭功能。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,实现USB接口,否则鼠标和键盘的生产出来也无法使用。【案例分析】描述笔记本类,实现笔记本使用USB鼠标、USB键盘:●USB接口,包含打开设备功能、关闭设备功能;●笔记本类,包含开机功能、关机功能、使用US...原创 2020-02-23 17:21:23 · 444 阅读 · 0 评论 -
【蓝桥杯】 【 基础练习】 【数列排序】
问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000。输出格式 输出一行,按从小到大的顺序输出排序后的数列。样例输入58 3 6 4 9样例输出3 4 6 8 9代码如下import java.util.Arrays;imp...原创 2020-02-23 14:06:35 · 237 阅读 · 0 评论 -
【继承】【群主发红包案例】
一、题目要求:群主发普通红包。某群有多名成员,群主给成员发普通红包。普通红包的规则:①.群主的- -笔金额, 从群主余额中扣除,平均分成n等份,让成员领取。②.成员领取红包后,保存到成员余额中。请根据描述,完成案例中所有类的定义以及指定类之间的继承关系,并完成发红包的操作。二、题目分析:由图可得,群主与普通成员都有姓名和余额,所以设置一个用户类,将共有的部分定义在用户类中,群主类和普通...原创 2020-02-21 18:12:11 · 1361 阅读 · 0 评论 -
递归之迷宫回溯问题(分析与实现)
迷宫问题:如图,迷宫大小为8行7列。红色区为墙,蓝色小球只能在白色区域走动 。具体说明:1、map 表示迷宫;2、i、j 表示从迷宫的哪个位置开始出发(假设从1,1出发);3、如果小球能到 map[6] [5] 的位置,说明小球已找到通路。4、设置:当 map[i] [j] =0 :表示该点没有走过;当 map[i] [j] =1 :表示墙和挡板;当 map[i] [j] =2...原创 2020-02-13 18:33:13 · 258 阅读 · 0 评论 -
递归的概念与用法
●递归的概念1、递归就是方法自己调用自己,每次调用时传入不同的变量。2、递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。●递归的调用规则1、当程序执行到一个方法时,就会开辟一个独立的空间(栈)。2、每个空间的数据(局部变量)是独立的。示例:public static void main(String args[]){ test(4); }public s...原创 2020-02-13 17:19:56 · 528 阅读 · 0 评论 -
数据结构栈之中缀表达式求值(实现计算器综合计算)
** 一、思路分析:**1、通过一个index值(索引),来遍历我们的表达式。2、如果我们发现是一个数字,就直接入数栈。3、如果发现扫描到是一个符号,就分如下情况:(1)、如果发现当前的符号栈为空,就直接入栈。(2)、如果符号栈有操作符,就进行比较,如果当前的操作符的优先级小于或者等于栈中的操作符,就需要从数栈中pop出两个数,在从符号栈中pop出-一个符号,进行运算,将得到结果,入数栈...原创 2020-02-10 14:38:12 · 360 阅读 · 0 评论 -
用数组实现栈(数据结构与算法)
一、栈的介绍(1)、栈的英文为(stack)。(2)、栈是一个先进后出(FILO-First In Last Out)的有序列表。(3)、栈(stack)是限 制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈项(Top),另外一端为固定的一 端,称为栈底(Bottom)。(4)、根据栈的定义可知,最先放入栈中元素在栈底,最后放入...原创 2020-02-10 12:08:34 · 3858 阅读 · 1 评论 -
【数据结构+算法】环形链表——约瑟夫环(Josephu)问题
一、约瑟夫环问题描述➢设编号为1, 2,…n的n个人围坐一 圈,约定编号为k (1<=k<=n) 的人从1开始报数,数到m的那个人出列,它的下一位又从1开始报数,数到m的那个人又出列,依次类推,直到所有人出列为止,由此产生一个出队编号的序列。➢提示用一个不带头结点的循环链表来处理Josephu问题:先构成一一个有n个结点的单循环链表,然后由k结点起从1开始计数,计到m时,对应结点...原创 2020-02-08 21:18:32 · 3153 阅读 · 0 评论 -
【数据结构+算法】队列——用数组实现环形队列
在我上一个博客中,我们提到数组实现队列时,不能实现代码的复用,优化方法是可以改成一个环形的数组(进行取余)。所以本次我将总结如何用数组实现环形队列。思路:1、对front变量进行一个调整:front指向队列的第一个元素,即arr[front]为队列的第一个元素;front=02、对rear变量也进行相应的调整:reart指向队列最后一个元素的后一个位置,预留一个空间;rear=03、队满:...原创 2020-02-08 20:12:18 · 739 阅读 · 1 评论 -
【数据结构】用数组实现队列(分析与实现)
一、队列的基础介绍1、队列可用数组(顺序存储结构)或链表(链式存储结构)来实现;2、遵循先入先出原则;3、示意图:二、用数组实现队列1、队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如上图,其中maxSize是队列的最大容量;2、队列的输入、输出分别从前后端处理,因此需要front和rear两个变量分别记录队列前后端的下标,其会随着数据输入而改变。3、将数据...原创 2020-02-07 20:10:36 · 1528 阅读 · 0 评论 -
什么是稀疏数组sparsearry?怎么用?
当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。1、稀疏数组的处理方法:(1)、记录数组一共有几行几列,有多少个不同的值;(2)、把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。(3)、稀疏数组只有3列,分别为 行、列、值。且其第一行为原二维数组的总行数、总列数及有效数据个数的总数。图一是一个二维数组,图二是创建的稀疏数组...原创 2020-02-07 16:09:08 · 284 阅读 · 0 评论 -
leetcode------905. 按奇偶排序数组
给定一个非负整数数组 A,返回一个数组,在该数组中, A 的所有偶数元素之后跟着所有奇数元素。你可以返回满足此条件的任何数组作为答案.示例输入:[3,1,2,4]输出:[2,4,3,1]输出 [4,2,3,1],[2,4,1,3] 和 [4,2,1,3] 也会被接受。提示1 <= A.length <= 50000 <= A[i] <= 5000Jav...原创 2020-01-31 16:32:50 · 219 阅读 · 0 评论 -
leetcode 232. 用栈实现队列(详细分析)
链接:https://leetcode-cn.com/problems/implement-queue-using-stacks使用栈实现队列的下列操作:push(x) – 将一个元素放入队列的尾部。pop() – 从队列首部移除元素。peek() – 返回队列首部的元素。empty() – 返回队列是否为空。示例:MyQueue queue = new MyQueue();qu...原创 2020-01-14 14:12:54 · 257 阅读 · 0 评论 -
leetcode 225. 用队列实现栈(详细分析)
使用队列实现栈的下列操作:push(x) – 元素 x 入栈pop() – 移除栈顶元素top() – 获取栈顶元素empty() – 返回栈是否为空注意:1.你只能使用队列的基本操作-- 也就是 push to back, peek/pop from front, size, 和 is empty 这些操作是合法的。2.你所使用的语言也许不支持队列。 你可以使用 list 或者de...原创 2020-01-13 16:04:23 · 275 阅读 · 0 评论 -
leetcode ---20. 有效的括号
给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例1: 输入: "()" 输出: true`示例2: 输入: "()[]{}" 输出: true示例3: 输入: "(]" 输出: false示例4:...原创 2020-01-12 16:24:27 · 1590 阅读 · 1 评论 -
leetcode --- 27. 移除元素(数组)
27. 移除元素给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。示例1:nums = [3,2,2,3], val = 3,函数应该返回新的长度 2, 并且 nums 中的前两个...原创 2019-12-22 17:09:34 · 218 阅读 · 0 评论 -
合并两个有序的单链表【单链表】【Java】
public static ListNode mergeTwoLists( ListNode headA,ListNode headB) { ListNode node= new ListNode(-1); ListNode tmp=node; while(headA!=null && headB!=null){ ...原创 2019-12-20 17:12:36 · 195 阅读 · 0 评论 -
【JAVA+数据结构+算法】链表——单链表
先创建节点类:class ListNode{ public int data; ListNode next; public ListNode(int data) { this.data = data; this.next=null; }}所有以下方法都在MySignalList类中,并且在此类中定义头部:class My...原创 2019-11-23 13:08:26 · 185 阅读 · 0 评论 -
【JAVA 单链表】反转单链表
节点类:class ListNode { public int data; //data可以是任何类型 public ListNode next; public ListNode(int data) { this.data = data; this.next = null; }}class TestDemon1 { ...原创 2019-11-16 17:10:30 · 153 阅读 · 0 评论 -
面向对象编程的详细概念
一、包(1)包:文件夹命名:a.小写字母并采用公司网站b.倒叙: www.baidu.com——>com.baidu.wwwpublic class Test { public static void main(String[] args) { java.util.Date date = new java.util.Date(); //得到一个毫秒级...原创 2019-11-14 21:16:34 · 155 阅读 · 0 评论 -
【JAVA】类和对象
一、OOP语言(面型对象设计语言)的三大特征:继承 封装 多态。二、面向过程: 处理小问题;JAVA是基于面向对象的。1.把冰箱打开 2. 把大象放入 3. 冰箱关起来面向对象: 处理大问题;C语言是面向过程的。打开冰箱,储存,关闭都是对冰箱的操作,是冰箱的行为。冰箱就是一个对象,所以只要操作冰箱所具备的功能,都要定义在冰箱中。三、类和对象的概念类: 模板 (图纸)对象: 实...原创 2019-10-27 21:22:34 · 282 阅读 · 0 评论 -
【JAVA】实现交换两个变量的值。要求:需要交换实参的值。
class Swap{ private int num1; private int num2; public Swap(int num1,int num2){ this.num1=num1; this.num2=num2; } public void func(){ int temp; te...原创 2019-10-24 17:13:26 · 177 阅读 · 0 评论 -
【Java】设计一个包含多个构造函数的类,并分别用这些构造函数来进行实例化对象。
class Person { private String name; private int age; // 默认构造函数; 构造对象 public Person() { this.name = "易烊千玺"; this.age = 19; } //带有两个参数的构造函数 public Person(S...原创 2019-10-24 17:10:13 · 1282 阅读 · 1 评论 -
编写一个类Calculator,有两个属性num1,num2,这两个数据的值,不能在定义的同时初始化,最后实现加减乘 除四种运算.
class Calculator{ private int num1; private int num2; public int add(int num1,int num2){ this.num1=num1; this.num2=num2; return this.num1+t...原创 2019-10-24 14:57:56 · 541 阅读 · 0 评论 -
【JAVA】求两个数的最大公约数
实现此代码关键方法是辗转相除法【举例说明:20和25 a=20 b=25】20 % 25 = 2025 % 20 = 520 % 5 = 0所以最大公约数就是5.import java.util.Scanner;public class Test3 { public static void main(String[] args) { ...原创 2019-10-20 22:54:16 · 189 阅读 · 0 评论 -
数组的定义与使用
1.数组的创建//动态初始化:数据类型[ ] 数组名称 = new 数据类型 [长度] { 初始化数据 };int[] arr = new int[3]{1, 2, 3};// 静态初始化:数据类型[ ] 数组名称 = { 初始化数据 };int[ ] arr = {1, 2, 3}; 2.在使用数组时,注意数组下标越界问题数组越界异常:java.lang.ArrayIndexOutO...原创 2019-10-19 19:40:27 · 152 阅读 · 0 评论 -
【Java】实现代码:找出数组元素中的最大值、最小值、平均值及逆置元素等问题
import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr = {1, 2, 3, 4, 5}; System.out.println("最大值:" + maxArr(arr)); System.out....原创 2019-10-19 17:53:22 · 796 阅读 · 0 评论 -
【Java】数据类型
【数据类型的基本知识】如图所示,我们首先应该知道数据类型的分类,然后再进行详细的讲解。一、数值型1.【整型】(1)int 4字节<基本语法格式> int 变量名 = 初始值;<代码示例> int num = 10; // 定义一个整型变量 System.out.println(num) ;表示的数据范围是 -2^31 ->...原创 2019-10-12 14:25:14 · 125 阅读 · 0 评论