自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(223)
  • 收藏
  • 关注

转载 Java线程池类型介绍

JDK的线程池相信大家都有用过,它预先创建好一部分线程,使用完后放回池中,避免了创建与销毁线程的昂贵开销,使得性能大大提升,和数据库连接池是一样的道理,本文简单介绍一下java中的几种线程池。jdk提供了Executors类方便我们创建线程池,我们平时都是使用它的静态方法newxxxxThreadPool进行线程池的创建。1.8中一共提供了5种线程池。1.固定数量的线程池这个比较好理...

2019-09-12 12:07:23 714

转载 数据库关系的3种完整性约束+5种范式

关系模型组成:关系数据库,关系操作集合,关系完整性约束。关系的三类完整性约束:(1)实体完整性(必须)若属性A是基本关系R的主属性,则A不能取空值。检查和违约处理:1)检查主码值是否唯一,如果不唯一则拒绝插入或修改。2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改。(2)参照完整性(必须)若属性F是基本关系R的外码,它与基本关系S的主码K相对应,则对于R中每个元组...

2019-09-11 20:51:36 7612

转载 操作系统常见面试题

1.进程的常见状态?以及各种状态之间的转换条件?就绪:进程已处于准备好运行的状态,即进程已分配到除CPU外的所有必要资源后,只要再获得CPU,便可立即执行。执行:进程已经获得CPU,程序正在执行状态。阻塞:正在执行的进程由于发生某事件(如I/O请求、申请缓冲区失败等)暂时无法继续执行的状态。2.进程同步进程同步的主要任务:是对多个相关进程在执行次序上进行协调,以使并发执行的诸进程之间能...

2019-09-09 10:00:15 427

转载 图解MySQL 内连接、外连接、左连接、右连接、全连接

用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接、全(外)连接)。MySQL版本:Server version: 5.6.31 MySQL Community Server (GPL)数据库表:a_table、b_table主题:内连接、左连接(左外连接)、右连接(右外连接...

2019-09-03 11:07:14 383

转载 HTTP1.0 HTTP 1.1 HTTP 2.0主要区别

HTTP1.0 HTTP 1.1主要区别长连接HTTP 1.0需要使用keep-alive参数来告知服务器端要建立一个长连接,而HTTP1.1默认支持长连接。HTTP是基于TCP/IP协议的,创建一个TCP连接是需要经过三次握手的,有一定的开销,如果每次通讯都要重新建立连接的话,对性能有影响。因此最好能维持一个长连接,可以用个长连接来发多个请求。节约带宽HTTP 1.1支持只发送he...

2019-08-29 10:49:39 282

转载 详解http和https的作用与区别

https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。只要上过网的朋友一定接触过“HTTP”,每次开网页的时候,不管是什么网址,其前面都会出现HTTP字样,比如 “http://www.jzxue.com”、“http://62...

2019-08-29 10:43:58 215

转载 关于TCP/IP,这一篇就够了

本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养。一、TCP/IP模型TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和...

2019-08-29 09:54:52 390

转载 Java虚拟机JVM的内存分布、垃圾回收(GC)机制、新生代、老年代、永久代

如果大家想深入的了解JVM,可以读读周志明《深入理解Java虚拟机:JVM高级特性与最佳实践》需要掌握的东西,包括以下内容、判断对象存活还是死亡的算法(引用计数算法、可达性分析算法)、常见的垃圾收集算法(复制算法、分代收集算法等以及这些算法适用于什么代)以及常见的垃圾收集器的特点(这些收集器适用于什么年代的内存收集)。JVM内存结构由程序计数器、堆、栈、本地方法栈、方法区等部分组成,结构图如...

2019-08-29 09:32:55 396

原创 买卖股票的最好时机

题目描述假设你有一个数组,其中第\ ii个元素是股票在第\ ii天的价格。你有一次买入和卖出的机会。(只有买入了股票以后才能卖出)。请你设计一个算法来计算可以获得的最大收益。import java.util.*;public class Solution { /** * * @param prices int整型一维数组 * @return int整型 */ public int maxProfit (int[] pr...

2021-03-22 14:55:23 184

原创 最长无重复子串

题目描述给定一个数组arr,返回arr的最长无的重复子串的长度(无重复指的是所有数字都不相同)。import java.util.*;public class Solution { /** * * @param arr int整型一维数组 the array * @return int整型 */ public int maxLength (int[] arr) { // write code here .

2021-03-21 18:06:48 167

原创 括号序列

题目描述给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列括号必须以正确的顺序关闭,"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。import java.util.*;public class Solution { /** * * @param s string字符串 * @return bool布尔型 */ Stack<..

2021-03-21 17:42:15 165

原创 合并2个有序子数组

题目:给定2个从小到大排序的有序数组,合并为1个从小到大的有序数组。思路:从每个数组的最后开始比较,合并更大的元素到新数组(因为从头开始排序,可能会存在一个数组的所有元素均大于另一个数组的最后一个元素的情况,指针不易控制)public static int[] MergeArray(int[]A,int[]B){ //处理特殊情况 if(A==null)return B; if(B==null)return A; //新建数组..

2021-03-20 19:41:36 164

原创 数据库表字段类型为JSON时的模糊查询

最近在项目中碰到了表字段为json格式,需要模糊搜索的情况,网上搜了下资料,是这么解决的。假设有一张数据库表t_node,它是这样的: id node_data 1 {"parentId":"123","pathName":"测试数据1/测试层级1"} 2 {"parentId":"123","pathName":"测试数据2/无关数据"} 我需要查到id=1的数据,即: id node_data 1 {"parentI..

2021-03-03 14:33:45 845 1

原创 org.testng.TestNGException: TestNG by default disables loading DTD from unsecured Urls.问题解决

TestNG XML DTD错误最近在tesgng跑测试用例时碰到了这个问题:org.testng.TestNGException: TestNG by default disables loading DTD from unsecured Urls. If you need to explicitly load the DTD from a http url, please do so by using the JVM argument [-Dtestng.dtd.http=true]解决方法

2020-06-24 19:58:24 7712 4

原创 IntelliJ Idea常用快捷键

快捷键:Ctrl+Y 删行Ctrl+D 复制上一行Alt+/ 代码补全Alt+Enter 导包Ctrl+Alt+L 代码格式化Ctrl+/ 单行注释Ctrl+Shift+/ 多行注释Alt+Insert ...

2020-03-16 10:44:15 174

原创 如何在ODBC中添加mysql(mysql总是bad handshake)

最近在使用odbc时出现了一个问题,依次安装mysql和odbc,在C:\Windows\SysWOW64\odbcad32.exe中找不到Mysql或者找到了点击test测试时总是bad handshake,后来发现是odbc应该用32位和版本过高的问题,使用32位5.3版本odbc后可以正常配置mysql。...

2019-10-26 16:03:27 2780

原创 Android Studio配置gradle(gradle-properties)

最近在学习Android开发,安装完Android Studio后,发现demo无法运行在虚拟机上,后来发现是配置文件的问题。正确的配置文件(build.gradle):// Top-level build file where you can add configuration options common to all sub-projects/modules.buil...

2019-10-03 16:33:56 697

原创 从零单刷Leetcode(JAVA描述)——23. 合并K个排序链表

合并k个排序链表,返回合并后的排序链表。请分析和描述算法的复杂度。示例:输入:[1->4->5,1->3->4,2->6]输出: 1->1->2->3->4->4->5->6来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/merge...

2019-09-24 10:16:32 151

原创 2020平安科技笔试题——字符串出现的次数

不怎么难,看到好多公司都喜欢考,留个墨水以后翻翻。输入一个字符串,如:apwww,统计连续字符出现的次数并打印。输入:apwww输出:a1 p1 w3一开始没看到连续直接用map过了20%纳闷了半分钟才发现题读错了 = =AC代码:import java.util.*;public class CountString { public stat...

2019-09-23 22:07:00 575

原创 程序员面试经典——约瑟夫环问题I

题目描述约瑟夫问题是一个非常著名的趣题,即由n个人坐成一圈,按顺时针由1开始给他们编号。然后由第一个人开始报数,数到m的人出局。现在需要求的是最后一个出局的人的编号。给定两个intn和m,代表游戏的人数。请返回最后一个出局的人的编号。保证n和m小于等于1000。测试样例:5 3返回:4import java.util.*;public class Joseph {...

2019-09-23 20:57:16 270

原创 从零单刷Leetcode(JAVA描述)——88. 合并两个有序数组

给定两个有序整数数组nums1 和 nums2,将 nums2 合并到nums1中,使得num1 成为一个有序数组。说明:初始化nums1 和 nums2 的元素数量分别为m 和 n。你可以假设nums1有足够的空间(空间大小大于或等于m + n)来保存 nums2 中的元素。示例:输入:nums1 = [1,2,3,0,0,0], m = 3nums2 = ...

2019-09-23 17:29:11 133

原创 从零单刷Leetcode(JAVA描述)——151. 翻转字符串里的单词

给定一个字符串,逐个翻转字符串中的每个单词。示例 1:输入: "the sky is blue"输出:"blue is sky the"示例 2:输入: " hello world! "输出:"world! hello"解释: 输入字符串可以在前面或者后面包含多余的空格,但是反转后的字符不能包括。示例 3:输入: "a good example"输出:...

2019-09-23 14:54:55 138

转载 操作系统——缓冲区(buffer)与缓存(cache)

一、什么是缓冲区缓冲区(buffer),它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间,这些存储空间用来缓冲输入或输出的数据,这部分预留的空间就叫做缓冲区,显然缓冲区是具有一定大小的。缓冲区根据其对应的是输入设备还是输出设备,分为输入缓冲区和输出缓冲区。二、为什么要引入缓冲区我们为什么要引入缓冲区呢?高速设备与低速设备的不匹配,势必会让高速设备花时间等待低速设...

2019-09-22 15:02:34 8626

转载 操作系统—详解虚拟内存

本文是对操作系统概念(第七版)——虚拟内存的学习总结,不足之处,欢迎批评指正。1、虚拟内存的理解:先将部分程序导入内存,执行完成后导入下一部分程序,给我们的感觉是内存变大了,实际上物理内存的大小并未发生变化。虚拟内存的优点:(1)将逻辑内存和物理内存分开。(2)虚拟内存允许文件和内存通过共享页而为两个或多个进程所共享。2、按需调页按需调页:顾名思义,在需要时才调入相应的...

2019-09-22 14:54:51 413

转载 synchronized与Lock的区别

两者区别:1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类;2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁;3.synchronized会自动释放锁(a线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放锁),Lock需在finally中手工释放锁(unlock()方法释放锁),否则容易造成线程死...

2019-09-22 14:15:57 132

转载 Mysql中的锁机制(表锁、行锁,共享锁,排它锁,间隙锁)

原文:http://blog.csdn.net/soonfly/article/details/70238902**锁是计算机协调多个进程或线程并发访问某一资源的机制。**在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从...

2019-09-22 10:45:53 294

转载 使用synchronized实现死锁

死锁简介死锁定义死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁产生条件互斥条件:指进程对所分配到的资源进行排它性使用,即在一段时间内某资源只由一个进程占用。如果此时还有其它进程请求资源,则请求者只能等待,直至占有资源的进程用毕...

2019-09-18 22:38:53 210

转载 多线程面试题——交替打印1和2

public class Multi { public static void main(String[] args) throws Exception { final Object obj = new Object(); Thread t1 = new Thread(new Runnable() { @Override ...

2019-09-18 22:32:02 209

原创 设计模式——单例模式

单例模式(Singleton Pattern)是 Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单例类只能有一个实例。2、单例类必须自己创建自己的唯一实例。3、单例...

2019-09-18 21:57:35 113

原创 设计模式——适配器模式

用一个例子了解适配器模式。小米4是普通USB充电线,而小米5是USB-C充电线,但是附赠了一个转接头,故小米5可以用小米4的充电线充电。package mocoDemo;//小米4充电线(被适配器)class M4 { void connection(){ System.out.println("使用小米4充电线"); }}//小米5充电线(...

2019-09-18 21:25:34 121

原创 从零单刷Leetcode(JAVA描述)——118. 杨辉三角

给定一个非负整数 numRows,生成杨辉三角的前 numRows 行。在杨辉三角中,每个数是它左上方和右上方的数的和。示例:输入: 5输出:[[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/pascals-triangle著作权归领扣...

2019-09-10 12:29:00 133

转载 算法:求最多有k个不同字符的最长子字符串的长度

问题给定一个字符串,找到最多有k个不同字符的最长子字符串,并返回其长度。样例例如,给定 s = “eceba” , k = 3,T 是 “eceb”,长度为 4.第一种思路将母问题分为两个子问题:1.如果从从头开始找,求最长k不同子串长度2.如果从第二个字符开始找,求最长k不同子串长度然后不断循环递归实现public static int longestSubstringDi...

2019-09-09 21:30:00 589

原创 2019搜狗测试开发第一题满分测试用例

2019/9/8,IP地址由四段数字组成,每段数字0~255, 由‘.’号隔开,如123456是错误的用例,标为0,即123456 0,10.163.255.123为正确的用例,标为1,即10.163.255.123 1。请写出测试用例。123456 010.129.232.163 110.129.232. 010.129.232.256 010.129.232.-1 00.0.0.0...

2019-09-09 09:23:30 174

原创 剑指offer:67.剪绳子

题目描述给你一根长度为n的绳子,请把绳子剪成m段(m、n都是整数,n>1并且m>1),每段绳子的长度记为k[0],k[1],…,k[m]。请问k[0]xk[1]x…xk[m]可能的最大乘积是多少?例如,当绳子的长度是8时,我们把它剪成长度分别为2、3、3的三段,此时得到的最大乘积是18。输入描述:输入一个数n,意义见题面。(2 <= n <= 60)输出描述:输出...

2019-09-07 17:24:25 118

原创 从零单刷Leetcode(JAVA描述)——146. LRU缓存机制

运用你所掌握的数据结构,设计和实现一个 LRU (最近最少使用) 缓存机制。它应该支持以下操作: 获取数据 get 和 写入数据 put 。获取数据 get(key) - 如果密钥 (key) 存在于缓存中,则获取密钥的值(总是正数),否则返回 -1。写入数据 put(key, value) - 如果密钥不存在,则写入其数据值。当缓存容量达到上限时,它应该在写入新数据之前删除最近最少使用的数...

2019-09-05 20:20:43 142

原创 从零单刷Leetcode(JAVA描述)——122. 买卖股票的最佳时机 II

给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获...

2019-09-05 20:14:53 383 1

原创 从零单刷Leetcode(JAVA描述)——82. 删除排序链表中的重复元素 II

给定一个排序链表,删除所有含有重复数字的节点,只保留原始链表中 没有重复出现 的数字。示例 1:输入: 1->2->3->3->4->4->5输出: 1->2->5示例 2:输入: 1->1->1->2->3输出: 2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com...

2019-09-05 17:10:31 175

原创 从零单刷Leetcode(JAVA描述)——83. 删除排序链表中的重复元素

给定一个排序链表,删除所有重复的元素,使得每个元素只出现一次。示例 1:输入: 1->1->2输出: 1->2示例 2:输入: 1->1->2->3->3输出: 1->2->3来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/remove-duplicates-from-sor...

2019-09-05 11:49:44 133

原创 从零单刷Leetcode(JAVA描述)——24. 两两交换链表中的节点

给定一个链表,两两交换其中相邻的节点,并返回交换后的链表。你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。示例:给定 1->2->3->4, 你应该返回 2->1->4->3.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/swap-nodes-in-pairs著作权归领扣网络所有。...

2019-09-05 11:01:49 238

原创 从零单刷Leetcode(JAVA描述)——137. 只出现一次的数字 II

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现了三次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,3,2]输出: 3示例 2:输入: [0,1,0,1,0,1,99]输出: 99来源:力扣(LeetCode)链接:https://leetcode-cn.com/problem...

2019-09-05 09:42:42 172

空空如也

空空如也

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

TA关注的人

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