自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(146)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 背包问题

package 背包问题之多重背包;/* * 有编号分别为a,b,c的三件物品,它们的重量分别是1,2,2,它们的价值分别是6,10,20, * 他们的数目分别是10,5,2, * 现在给你个承重为 8 的背包,如何让背包里装入的物品具有最大的价值总和 */public class DongtaiGuihua { public static void main(String[] a...

2018-08-24 09:45:48 207

转载 BIO NIO AIO

BIO:采用BIO通信模型的服务端通常由一个独立的Acceptor线程负责接收客户端的连接,它接收到客户端的连接后,会为每一个客户端创建一个新的线程进行处理,返回数据后会销毁线程,典型的一请求一应答模型,该模型缺乏弹性伸缩能力,当服务端接收并发数量比较多时, 系统将会发生堆栈溢出和不能创建新线程,导致服务端不能对外提供服务线程数与客户端请求数1:1 伪异步IO通信当一个客户端请...

2018-08-15 20:46:52 326

转载 http 1.0 http 1.1 http 2.0异同点

HTTP 1.0需要使用keep-alive参数告知服务器需要建立一个长连接,而HTTP 1.1默认支持长连接,长连接避免了多次TCP三次握手 HTTP 1.1支持只发送header信息,如果服务器认为客户端有权限请求服务器,则返回100,否则返回401,客户端如果接收到100,才开始把请求body发送到服务器,当服务器返回401的时候,客户端就不用发送body了,节约了带宽,另外HTTP...

2018-08-15 10:19:50 241

转载 Java并发包-java.util.concurrent详解

转载自https://blog.csdn.net/axi295309066/article/details/65665090一.阻塞队列BlockingQueueBlockingQueue通常用于一个线程生产对象,另外一个线程消费这些对象的场景BlockingQueue 具有 4 组不同的方法用于插入、移除以及对队列中的元素进行检查。如果请求的操作不能得到立即执行的话,每个方法的表现也...

2018-08-14 13:22:57 36643 5

转载 线程实现的三种方法

https://blog.csdn.net/shenggaofei/article/details/52643137

2018-08-13 19:55:14 188

转载 线程池的使用2

ArrayBlockingQueue、LinkedBlockingQueue、SynchronousQueue:这三个队列各有特色SynchronousQueue:队列不存任务,需要不停的创建线程包括非核心线程来处理LinkedBlockingQueue:只有核心线程来处理,队列可以无限延长ArrayBlockingQueue:先用核心线程来处理任务,核心线程都在工作时加入队列,队列满...

2018-08-12 15:09:10 308

转载 线程池详解1

Java线程池主要是Executor接口,实现(间接实现该接口)类具体为ThreadPoolExecutor类,下面是关于该类的详解一.ThreadPoolExecutor提供了四个构造函数public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, ...

2018-08-12 10:42:00 245

原创 Collections和Arrays的默认排序

参考https://blog.csdn.net/bruce_6/article/details/38299199总图:Arrays.sort(str);    str为Object[]Collections.sort(array);   array为List<Type>JDK 1.6及1.6以前使用,不加比较器是因为其实现了Comparable接口,加入比较器就按照比...

2018-08-11 21:17:22 394

转载 高性能网站设计之缓存更新的套路

转载自https://blog.csdn.net/tTU1EvLDeLFq5btqiK/article/details/78693323

2018-08-07 16:30:29 253

转载 snowflake算法

在做mysql数据库的插入时,虽然也能使用自增id,但是自增id比较简单,用户登录或者通过工具遍历主键一遍就可以获取所有数据,防护性欠缺,UUID虽然可以避免以上风险,但是确是无序的,索引效率低,还会导致辅助索引数据量增大,不予考虑,关于snowflake的介绍如下:SnowFlake算法产生的ID是一个64位的整型,结构如下(每一部分用“-”符号分隔):0 - 0000000000 0...

2018-08-07 13:38:53 343

原创 springmvc 拦截器和过滤器有什么区别

        过滤器是基于函数回调的,需要依赖servlet容器,在请求进入容器后,还未进入Servlet之前进行预处理,并且请求结束返回给前端进行后期处理,只能在容器初始化时调用一次,可以自定义过滤器实现并在web.xml中注册        拦截器不依赖于servlet容器,依赖于web框架,在springmvc中就是依赖于SpringMVC框架,实现上基于Java反射机制,用处:⑴...

2018-08-07 13:01:18 4745

原创 分布式锁

一.乐观锁用于分布式锁:多数是基于数据版本(version)的记录机制实现的。何谓数据版本号?即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表添加一个 “version”字段来实现读取出数据时,将此版本号一同读出,之后更新时,对此版本号加1。二.基于redis的分布式锁:SETNX命令(SET If Not Exists):原子性操作,当且仅当key不存在...

2018-08-07 13:00:43 162

转载 JDK 1.8新特性

 1.HashMap系列采用红黑树(超过一定数量)2.更少的代码-lambda表达式3.强大的Stream API-Stream4.便于并行-Parallel5.最大化减少空指针异常-Optional 1.lambda表达式:左侧:lambda表达式的参数列表右侧:lambda表达式中需要执行的功能,即函数体语法:(1)无参数,无返回值Runnab...

2018-08-07 13:00:15 114

原创 为什么UUID是唯一的

UUID是一种通用唯一识别码,而且本机生成不耗费资源,目的是用于分布式环境中唯一生成标志码,是由32个16进制数组成,主要包括三部分:(1)当前日期和时间,UUID的第一个部分是当前日期和时间,如果你在生成一个UUID之后,过几秒又生成一个UUID,则第一个部分不同,其余相同。(2)时钟序列(3)全局唯一的IEEE机器识别号(如果有网卡,从网卡获得,没有网卡以其他方式获得)例如...

2018-08-07 12:59:37 8928

原创 剑指Offer-66-机器人的运动范围

题目描述地上有一个m行和n列的方格。一个机器人从坐标0,0的格子开始移动,每一次只能向左,右,上,下四个方向移动一格,但是不能进入行坐标和列坐标的数位之和大于k的格子。 例如,当k为18时,机器人能够进入方格(35,37),因为3+5+3+7 = 18。但是,它不能进入方格(35,38),因为3+5+3+8 = 19。请问该机器人能够达到多少个格子?//这题有毛病public clas...

2018-08-06 15:17:15 171

原创 剑指Offer-65-矩阵中的路径

题目描述请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则之后不能再次进入这个格子。 例如 a b c e s f c s a d e e 这样的3 X 4 矩阵中包含一条字符串"bcced"的路径,但是矩阵中不包含"abcb"路径,因为字...

2018-08-06 15:17:09 156

原创 剑指Offer-64-滑动窗口的最大值

题目描述给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值。例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6,6,6,5}; 针对数组{2,3,4,2,6,2,5,1}的滑动窗口有以下6个: {[2,3,4],2,6,2,5,1}, {2,[3,4,2],6,2,5,1}, {2,3,[4,2,6],2,...

2018-08-06 15:17:02 113

原创 剑指Offer-63-数据流中的中位数

题目描述如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。我们使用Insert()方法读取数据流,使用GetMedian()方法获取当前读取数据的中位数。import java.util.*;public class Solution { Ar...

2018-08-06 15:16:54 169

原创 剑指Offer-62-二叉搜索树的第k个结点

题目描述给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8)    中,按结点数值大小顺序第三小结点的值为4。/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int va...

2018-08-06 15:16:33 130

原创 剑指Offer-61-序列化二叉树

题目描述请实现两个函数,分别用来序列化和反序列化二叉树public class Solution { //加static就错 public StringBuilder s = new StringBuilder(); public int start = 0; String Serialize(TreeNode root) { if(roo...

2018-08-05 14:14:49 145

原创 数据库设计规范

1.所有数据库对象名称(包括表名、列名等)使用小写,因为数据库大小写敏感2.所有数据库对象名称禁止使用MySQL保留关键字  select user,from,age from table 出错 改select user,`from`,age from table3.数据库对象的命名能做到见名识义,最好不要超过32个字符4.临时表必须以tmp为前缀并以日期为后缀5.备份表必须以ba...

2018-08-05 14:12:50 136

转载 原始JDBC连接数据库

JDBC访问数据库的工作过程: 加载驱动创建语句对象 执行SQL语句 处理结果集 关闭连接 static:装载驱动类,驱动类通过static块实现在DriverManager中的“自动注册”Connection接口负责应用程序对数据库的连接,在加载驱动之后,使用url、username、password三个参数,创建到具体数据库的连接,Connection只是接口,真正的实现...

2018-08-05 10:18:06 363

原创 剑指Offer-60-把二叉树打印成多行

题目描述从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。import java.util.ArrayList;import java.util.LinkedList;import java.util.Queue;/*public class TreeNode { int val = 0; TreeNode left = null; Tre...

2018-08-05 10:17:56 109

原创 剑指Offer-59-按之字形顺序打印二叉树

题目描述请实现一个函数按照之字形打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右至左的顺序打印,第三行按照从左到右的顺序打印,其他行以此类推。import java.util.ArrayList;import java.util.Stack;/*public class TreeNode { int val = 0; TreeNode left = nul...

2018-08-05 10:17:44 103

原创 剑指Offer-58-对称的二叉树

题目描述请实现一个函数,用来判断一颗二叉树是不是对称的。注意,如果一个二叉树同此二叉树的镜像是同样的,定义其为对称的。/*public class TreeNode { int val = 0; TreeNode left = null; TreeNode right = null; public TreeNode(int val) { ...

2018-08-05 10:17:34 122

原创 剑指Offer-57-二叉树的下一个结点

题目描述给定一个二叉树和其中的一个结点,请找出中序遍历顺序的下一个结点并且返回。注意,树中的结点不仅包含左右子结点,同时包含指向父结点的指针。/*public class TreeLinkNode { int val; TreeLinkNode left = null; TreeLinkNode right = null; TreeLinkNode ne...

2018-08-05 10:17:26 154

原创 剑指Offer-56-删除链表中重复的结点

题目描述在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针。 例如,链表1->2->3->3->4->4->5 处理后为 1->2->5/* public class ListNode { int val; ListNode next = null; ListNode(...

2018-08-05 10:17:18 94

原创 剑指Offer-55-链表中环的入口结点

题目描述给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { ...

2018-08-05 10:17:08 211

原创 count(1)、count(*)、count(列)

count(列):会计数所有除了NULL的总数count(1)、count(*)(会自动优化到查询某一列):差别不大

2018-08-05 10:16:58 166

原创 Cglib代理原理剖析

Cglib代理原理剖析package Cglib第三方代理; import java.lang.reflect.Method; import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy.MethodProxy; public ...

2018-08-04 11:27:45 182

原创 Cglib动态代理反编译生成类

JDK的反编译较为简单,看本机源代码1.下面是代理类和真实类的源代码package Cglib第三方代理;import java.lang.reflect.Method;import net.sf.cglib.proxy.Enhancer;import net.sf.cglib.proxy.MethodInterceptor;import net.sf.cglib.proxy...

2018-08-04 10:31:56 3036

转载 Java各种代理

 1.简单代理:代理类与真实类组合在一起,代理类与组合类具有相同的方法名package 动态代理;/*abstract class*/ interface Interface{ void doSomething(); void somethingElse(String arg); int a=6;}class RealObject implements Interface{...

2018-08-04 10:12:37 140

原创 计算机网络基础知识

TCP/IP(四层):网络接口层、网际层、传输层、应用层OSI(标准模型):物理层(比特)、数据链路层(帧)、网络层(数据报)、传输层(TCP、UDP)、会话层、表示层、应用层:物理层、数据链路层、网络层、传输层、应用层 应用层:直接为应用进程服务,当不同的应用进程数据通信或数据交换时,就去调用应用层的不同协议实体传输层:负责应用进程间端到端的通信网际层:负责寻址和对数据报...

2018-08-03 17:15:15 143 2

原创 反射详解

私以为:每一个对象有隐式引用指向它的Class对象,Class对象可能会指向方法区的Class类型TestReflect1.javapackage 反射及类型信息;//类名的取得public class TestReflect1 { public static void main(String[] args) { TestReflect1 tf1 = new TestRefle...

2018-08-03 16:18:53 141

原创 Minor GC和Full GC和内存分配策略

1.Minor GC和Full GCMinor GC:发生在新生代上,因为新生代对象存活时间很短,因此Minor GC会频繁执行,执行的速度一般也比较快Full GC:发生在老生代上,老生代对象存活时间长,因此Full GC很少执行2.内存分配策略(一)大多数情况下,对象优先在Eden区分配,当Eden区不够时,发起Minor GC(二)大对象直接进入老年代  -XX:Pret...

2018-08-03 14:27:09 328

原创 CMS收集器与G1收集器

CMS(Concurrent Mark Sweep):        以获取最短回收停顿时间为目标的收集器,是基于“标记-清除”算法的,整个四个步骤包括:        (1)初始标记  (2)并发标记 (3)重新标记 (4)并发清除       初始标记和重新标记仍需要"Stop The World"(暂停工作线程),初始标记仅仅标记下GC Roots能直接关联到的对象,速度很快,并...

2018-08-03 11:54:06 197

原创 二叉树的先序遍历、中序遍历和后序遍历及层次遍历

package 二叉树遍历;import java.util.LinkedList;import java.util.Queue;import java.util.Stack;public class BinaryTree { // 二叉树结点 public static class BinaryTreeNode { int value; BinaryTreeNode l...

2018-08-03 08:24:27 308

原创 剑指Offer-54-字符流中第一个不重复的字符

题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符。例如,当从字符流中只读出前两个字符"go"时,第一个只出现一次的字符是"g"。当从该字符流中读出前六个字符“google"时,第一个只出现一次的字符是"l"。输出描述:如果当前字符流没有存在出现一次的字符,返回#字符。public class Solution{ int[] count=new in...

2018-08-02 16:36:13 98

原创 剑指Offer-53-表示数值的字符串

题目描述请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。 但是"12e","1a3.14","1.2.3","+-5"和"12e+4.3"都不是。public class Solution {

2018-08-02 16:34:39 131

原创 剑指Offer-52-正则表达式匹配

题目描述请实现一个函数用来匹配包括'.'和'*'的正则表达式。模式中的字符'.'表示任意一个字符,而'*'表示它前面的字符可以出现任意次(包含0次)。 在本题中,匹配是指字符串的所有字符匹配整个模式。例如,字符串"aaa"与模式"a.a"和"ab*ac*a"匹配,但是与"aa.a"和"ab*a"均不匹配public class Solution { public boolean ...

2018-08-02 16:32:45 123

计算机考研专业课_408_真题_2009-2013完美打印版.pdf

计算机考研专业课_408_真题_ 2009-2013完美打印版

2017-10-12

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

TA关注的人

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