自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 设计模式-工厂模式(Java)

简单工厂模式一个抽象接口,多个抽象接口实现类,一个工厂类/**简单工厂模式一个抽象接口,多个抽象接口实现类,一个工厂类**/public abstract class Car{ public abstract void run(); public abstract void stop(); }public class Ford extends Car{ public void run(){ System.out.println("Ford i

2020-12-22 18:20:18 249

原创 设计模式-适配器模式(Java)

/**适配器模式两种完全不同的事物联系到一起**/public class Phone{ public static final int V = 220; private VoltageAdapter adapter; public void charge(){ adapter.changeVoltage(); } public void setVoltageAdapter(VoltageAdapter adapter){ t.

2020-12-22 17:36:09 174

原创 设计模式-装饰者模式(Java)

/**装饰者模式是对业务逻辑的再一次封装,开发者在使用时可以自由搭配,就如同Java的IO流一样*/public class Food{ private String name; public Food(){ } public Food(String name){ this.name = name; } public String make(){ return food; }}public class Br.

2020-12-22 16:58:52 156

原创 设计模式-观察者模式(Java)

/**观察者模式observer当一个对象的状态发生改变时,该对象依赖的所有对象都被通知并自动更新**/public interface Message{ public void getMessage(String mode);}public class Computer implements Message{ private String mode = "computer"; public Computer(){ } @override pu.

2020-12-22 16:44:05 124

原创 设计模式-Java:为什么说枚举是单例模式最好的实现方式?

单例模式单例模式即指在一个应用程序中,一个类的实例化对象只存在一个(如Spring默认为单例模式),没有办法通过new去创建对象(构造方法private修饰),只能通过getInstance来获得对象。简单Demo实现public class Singleton { private static Singleton singleton; public Singleton() { } private static Singleton getInstance()

2020-11-23 14:28:49 316

原创 建立二叉排序(搜索)树

建立二叉排序(搜索)树描述输入一组数,对输入的数建立二叉树排序(搜索),并前中后序遍历二叉树。28, 40, 20, 54, 66, 79对待排序的数据进行排序定义二叉树结构体,递归建立二叉树递归前中后序遍历定义二叉树节点结构体struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(NULL), right(NULL){} };

2020-09-03 20:29:52 529

原创 虚拟内存

虚拟内存定义程序不需要全部装入内存,运行时根据需求动态调入所需的数据,若内存不够,还需要置换一些数据。实现请求调页功能:访问的数据不在内存时,由操作系统负责将所需的信息从外存调入内存页面置换功能:内存空间不够时,将内存中暂时用不到的数据换到外存中...

2020-09-02 22:24:07 110

原创 进程是什么?线程是什么?进程与线程的区别?进程、线程通信方式,进程同步与互斥

文章目录一、进程是什么?二、线程是什么?三、线程与进程的比较四、进程、线程通信方式五、同步与互斥1、同步2、互斥3、实现一、进程是什么?从不同的角度,进程有不同的定义。一种角度定义为,进程是程序的一次执行过程。这个定义可能很抽象,进一步解释,比如建造一栋房屋,需要制定计划,第一步干什么,第二步干什么,有很多步骤和实现方式。而这个实现过程便称为进程(process)。我们称之为P进程,是指想清楚做一件事的过程,而这件事其做没做并不重要。从另一种角度,也是我们更加所熟知的一种角度。进程是指程序在操作系

2020-08-25 16:37:25 299

原创 八大内部排序

八大排序前言排序,就是重新排列表中的元素,使得表中元素满足按关键字有序的过程。排序有许多种,常用的八大内部排序为冒泡排序、插入排序、选择排序、希尔排序、快速排序、归并排序、基数排序、堆排序这几种排序没有绝对的优劣,每种排序都有他们适用范围一、冒泡排序冒泡排序每一趟排序可以确定一个元素的最终位置,若一次扫描并没有元素进行交换,则说明表已有序。void bubbleSort(ElemType a[], int n){ for(int i = 0; i < n - 1;.

2020-08-24 21:43:59 1901

原创 java网络编程-Netty

Netty一个非阻塞的客户端-服务端网络通讯框架基于异步事件驱动模型简化Java的TCP和UDP编程关键技术(责任链)通道ChannelServerSocketChannel / NioServerChannelSocketChannel / NioSocketChannel事件 EventLoop为每个通道定义一个EventLoop,处理所有的I/O事件Even...

2020-07-05 21:58:38 136

原创 java网络编程-BIO、NIO、AIO总结

总结

2020-07-05 21:58:19 130

原创 java网络编程-AIO编程

AIO编程NIO减少了线程多的压力(目前一台计算机最多几百个线程),但不是真异步。网络通讯的同步:是指客户端和服务器端直接的通讯等待方式。这里的同步的反义词是异步,即无需等待另外一段操作完成。AIO(Asynchronous I/O,异步I/O)采用回调方法进行处理读写操作AsynchronousServerSocketChannel 服务器接收请求通道bind 绑定到某个端口 a...

2020-07-05 21:58:07 193

原创 java网络编程-NIO编程

NIO编程传统的TCP和UDP通讯:Blocking I/O(阻塞,需要等待慢的一方,效率不高)Non-Blocking I/O提供非阻塞通讯等方式避免同步I/O通讯效率过低一个线程可以管理多个连接减少线程多的压力三个重要的类Buffer缓存区Channel通道Selector多路选择器Buffer缓存区,一个可以读写的内存区域ByteBuffer, CharBu...

2020-07-05 21:57:57 161

原创 java网络编程-HTTP编程

HTTP编程Java HTTP编程支持模拟成浏览器的方式去访问网页URL, Uniform Resource Locator,代表一个资源URLConnection获取资源连接器根据URL的openConnection()方法获得URLConnectionconnect方法,建立和资源的联系通道getInputStream方法,获取资源的内容示例代码:Get获取网页h...

2020-07-05 21:57:36 424

原创 java网络编程-TCP

TCP编程TCP协议:有链接、保证可靠的无误差通讯服务器:创建一个ServerSocket,等待连接客户机:创建一个Socket,连接到服务器服务器:ServerSocket接收到连接,创建一个Socket和客户的Socket建立专线连接,后续服务器和客户机的对话(这一对Socket)会在一个单独的线程(服务器端)上运行服务器的ServerSocket继续等待连接,返回 1Ser...

2020-07-05 21:57:22 146

原创 java网络编程-UDP

UDP编程DatagramSocket:通讯的数据管道send 和 receive 方法(可选,多网卡)绑定一个IP和ProtDatagramPacket集装箱:封装数据地址标签:目的地IP+PortUpdRev源代码:package com.lihuan.network.demo01;import java.io.IOException;import java.ne...

2020-07-05 21:57:09 119

原创 多线程管理

细粒度线程之间有同步协作等待通知/唤醒终止线程状态NEW 刚创建(new)RUNNABLE 就绪态(start)RUNNING 运行中(run)BLOCK 阻塞(sleep)TERMINATED 结束(terminated)Thread的部分API已经废弃暂停和恢复suspend/resume消亡stop/destroy线程阻塞/和唤醒sleep,时间一...

2020-07-05 21:56:56 374

原创 java多线程与多进程简单示例

多进程package com.lihuan.thread.demo01;public class ProcessDemo1 { public static void main(String[] args) { while (true){ int a = (int) (Math.random() * 100); Sys...

2020-07-05 21:54:17 287

原创 Oracle存储设置与管理

Oracle 数据库重做日志文件的作用和工作方法作用:重做日志文件是用于存储数据库的事务日志文件。以便系统在出现系统故障和介质故障时能够进行故障恢复。在数据库中,任何修改数据库的操作都会产生重做日志,当系统出现故障时,通过分析日志可以知道在故障发生前系统做了哪些动作,并可以重做这些动作使系统恢复到故障之前的状态。(重做日志文件是以重做记录的形式记录、保存用户对数据库所进行的修改操作,包括用户执行...

2020-03-09 20:27:58 287

原创 Oracle数据库系统结构

Oracle 数据库体系结构的组成及其关系Oracle数据库由数据库存储结构和数据库实例两部分构成。其中存储结构包括物理存储结构和逻辑存储结构,是数据存储及空间分配的基础;实例是构成Oracle数据库的软件结构,包括内存结构和后台系统,是数据库运行与管理的基础。Oracle 数据库数据文件的作用数据文件:是数据库中所有数据的实际存储空间,所有数据文件的大小和构成了数据库的大小。Orac...

2020-03-09 20:01:34 495

原创 Oracle 11g 安装包

链接:https://pan.baidu.com/s/1Qk44lcjZmnM8MXYSkOOwgQ提取码:ng6x

2020-03-03 11:52:47 213

原创 oracle sqlplus配置

slqplus显示错乱设置(格式化指令)SET LINESIZE 300;SET PAGESIZE 30;打开sql文件编辑,执行sql文件ed 文件名@文件名指令切换数据库用户CONN system/manager超级管理员登录:CONN sys/change_oninstall AS SYSDBA以“模式名称.表名称”的方式访问表SELECT ...

2020-02-20 20:48:31 255

原创 SQL 简单查询

简单查询的基本格式SELECT [DISTINCT] * | 列名称[别名],列名称[别名],...FROM 表名称[别名]先执行FROM再执行SELECT查询固定列加上具体列名称即可查询全部列用通配符“*”DISTINCT消除相同的列,多个列。常量是字符串用单引号声明:‘xxx’可以使用“||”合并列...

2020-02-19 00:14:19 145

原创 LeetCode-34. 在排序数组中查找元素的第一个和最后一个位置(Find First and Last Position of Element in Sorted Array)

二分class Solution {public: vector<int> searchRange(vector<int>& nums, int target) { int l = left_bound(nums, target); int r = right_bound(nums, target); re...

2019-11-25 14:32:56 203

原创 LeetCode-33. 搜索旋转排序数组(Search in Rotated Sorted Array)

二分(待优化)class Solution {public: int search(vector<int>& nums, int target) { if(nums.size() == 0){ return -1; } if(nums.size() == 1){ return nums[0] == target ...

2019-11-24 10:53:53 147

原创 LeetCode-32. 最长有效括号(Longest Valid Parentheses)

栈class Solution {public: int longestValidParentheses(string s) { stack<int> st; int ans = 0; if(s.size() <= 1) return 0; st.push(-1); for (int i ...

2019-11-22 10:34:46 165

原创 华为云服务器ping不通或无法访问

首先打开控制台(右上角)选择已购买服务器所在的区域在云服务器控制台找到安全组并进入找到系统配好的Sys-WebServer安全组点击配置规则点击一键放通然后回到步骤3的页面,找右侧要开启端口的服务器,点击更改安全组,然后选择刚刚一键放通的Sys-WebServer安全组确认就可以ping通了...

2019-11-21 18:02:54 6156 3

原创 LeetCode-31. 下一个排列(Next Permutation)

STL or ManualSTLclass Solution {public: void nextPermutation(vector<int>& nums) { next_permutation(nums.begin(), nums.end()); }};Manualclass Solution {public: ...

2019-11-21 17:40:25 181

原创 LeetCode-30. 串联所有单词的子串(Substring with Concatenation of All Words)

哈希(待优化)class Solution {public: vector<int> findSubstring(string s, vector<string>& words) { vector<int> res; if(s.size() == 0 || words.size() == 0) return res; ...

2019-11-20 14:50:15 147

原创 LeetCode-35. 搜索插入位置(Search Insert Position)

二分class Solution {public: int searchInsert(vector<int>& nums, int target) { int i; if(target > nums[nums.size() - 1]){ return nums.size(); } ...

2019-11-19 19:55:16 156

原创 LeetCode-29. 两数相除(Divide Two Integers)

各种特判class Solution {public: int divide(int dividend, int divisor) { if(dividend == INT_MIN && divisor == -1) return INT_MAX; int flag = (dividend < 0) ^ (divisor < 0) ...

2019-11-18 19:01:16 128

原创 数据库原理及其应用实验指导实验一(SQL语言-查询和更新操作)

1. 数据库、表的创建以及数据的插入(1).建立数据库jxgl;源代码:CREATE DATABASE jxgl;实验结果如下:(2).创建Student表;源代码:CREATE TABLE Student( Sno CHAR(5) NOT NULL PRIMARY KEY(Sno), Sname VARCHAR(20), Sage SMALLINT CHECK(Sage ...

2019-11-18 16:14:33 8370 2

原创 LeetCode-28. 实现 strStr()(Implement strStr())——KMP算法

KMP算法class Solution {private: vector<vector<int>> dp;public: int strStr(string haystack, string needle) { if(needle.size() == 0) { return 0; } int j = 0; ...

2019-11-18 10:42:03 142

原创 数据库概念解析

一、试述数据、数据库、数据库系统、数据库管理系统的概念。1、数据(Data):是描述事物的符号记录称为数据。数据的种类有数字、文字、图形、图像、音频、视频等。数据与其语义是不可分的。2、数据库(DataBase,DB):数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合。数据库中的数据按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享。...

2019-11-17 16:51:38 384

原创 安卓Android Studio开发环境,无需连接外网

免装SDK、AVD,一键安装,程序已经打包好SDK和AVD第一步下载打包好SDK、AVD的Android Studio下载链接:https://pan.baidu.com/s/1vZKxK5GPrw1tdydisK-x1A 提取码: y6pi安装Android Studio(无脑,按默认安装就行)下载gradle,运行Android Studio,新建项目后导入下载好的g...

2019-11-17 16:45:46 2266

原创 LeetCode-27. 移除元素(Remove Element)

双指针(击败100%!)class Solution {public: int removeElement(vector<int>& nums, int val) { int i = -1; if(nums.size() == 0){ return 0; } for (int j =...

2019-11-17 15:15:08 137

原创 LeetCode-26. 删除排序数组中的重复项(Remove Duplicates from Sorted Array)

双指针class Solution {public: int removeDuplicates(vector<int>& nums) { int i = 0; if(nums.size() == 0) { return 0; } for (int j = 1; j < nums....

2019-11-17 15:01:29 264

原创 LeetCode-25. K 个一组翻转链表(Reverse Nodes in k-Group)

和24题差不多,用一个指针记录前一个节点,需要特判,若count结束后并不等于k则翻转回来class Solution {public: ListNode* reverseKGroup(ListNode* head, int k) { ListNode *newHead = new ListNode(0); ListNode *relativeHead = newH...

2019-11-16 15:46:06 212

原创 LeetCode-24. 两两交换链表中的节点(Swap Nodes in Pairs)

用一个指针记录前一个节点(和下一题一起做了)class Solution {public: ListNode* swapPairs(ListNode* head) { int k = 2; ListNode *newHead = new ListNode(0); ListNode *relativeHead = newHead; ...

2019-11-16 15:44:35 147

原创 LeetCode-23. 合并K个排序链表(Merge k Sorted Lists)

排序class Solution {public: ListNode* mergeKLists(vector<ListNode*>& lists) { ListNode* ans = new ListNode(0); ListNode* now = ans; vector<int> nums; int ...

2019-11-15 10:52:57 136

h2数据库及h2数据库驱动

H2是一个Java编写的关系型数据库,它可以被嵌入Java应用程序中使用,或者作为一个单独的数据库服务器运行。

2019-11-18

空空如也

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

TA关注的人

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