自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 从BIO到NIO到多路复用器的“进化论”

首先抛出一个步骤,同步IO(BIO,NIO,多路复用器)都是同步的,它们在服务端有相同的启用端口开启监听的步骤。socket 得到一个文件描述符sfdbind 在服务端绑定端口listen 开启监听accept 获取客户端连接recv 获取客户端发来的数据(读写)前三步在BIO,NIO,多路复用器里大同小异,差异在后面两步accept与recv的处理方法。通过几个例子来说明。1.BIO(Blocking IO)同步阻塞,⼀个请求过来,应⽤程序开了⼀个线程,等 IO 准备好,IO

2020-08-11 14:30:25 229

原创 记录---信封嵌套问题(动态规划)

import java.util.Arrays;import java.util.Comparator;public class DP9 { public static void main(String[] args) { int[][] test={{1,2},{3,3},{2,6},{5,5}}; DP9 dp9 = new DP9(); int res = dp9.maxEnvelopes(test); .

2020-09-06 10:40:59 291

原创 记录---数组最长递增子序列长度(动态规划)

import java.util.Arrays;import java.util.Scanner;public class DP8 { public static void main(String[] args) { //int[] arr={1,2,5,4,6,0,4,9}; // 5 Scanner sc = new Scanner(System.in); String s = sc.nextLine(); String[].

2020-09-05 11:14:25 174

原创 记录---区间调度问题(贪心算法)

你今天有好几个活动,每个活动都可以用区间 [start, end] 表⽰开始和结束的时间,请问你今天最多能参加几个活动呢?输入示例:第一行为活动总数n=3,第2、3、4行为活动区间[1,3] [2,4] [3,6]输出示例:返回能参加活动的最大个数 2 (参加第一个活动与第三个活动)import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;/** * 算出这些区间中最多有⼏个互不相交的区间 *

2020-09-04 11:09:15 205

原创 记录---股票买卖问题(动态规划)

import java.util.Scanner;/** * 股票买卖,int K为最大交易次数,int[] prices为股票价格,prices[i-1]表示第i天的股票价格 * 求收益最大化时的收益 * */public class DP7 { public static void main(String[] args) { //int k = 3; //int[] prices = {1,3,4,1,9,5,11,99}; Scann.

2020-09-03 20:20:28 154

原创 记录---最长公共子序列问题(动态规划)

import java.util.Scanner;/** * 最⻓公共⼦序列长度 * */public class DP6 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str1 = sc.next(); String str2 = sc.next(); DP6 dp6 = new DP6(); .

2020-09-02 18:38:44 149

原创 记录---扔鸡蛋问题(动态规划)

import java.util.Arrays;import java.util.Scanner;public class DP5 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); DP5 dp5 = new DP5(); .

2020-09-02 12:10:26 138

原创 记录---完全背包问题(动态规划)

import java.util.Scanner;/** * 有一个背包,最大容量为amount,有一系列物品coins,每个物品的重量为coins[i],每个物品的数量无限。请问有多少种方法,能够把背包恰好装满? * 硬币问题,可以看成完全背包问题 * */public class DP4 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int.

2020-09-01 18:23:34 228

原创 记录---01背包问题变体(动态规划)

import java.util.Scanner;/** * 给一个可装载重量为sum/2的背包和N个物品,每个物品的重量为nums[i]。现在让你装物品,是否存在一种装法,能够恰好将背包装满? */public class DP3 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String s = sc.nextLine(); .

2020-09-01 13:06:49 188

原创 记录---01背包问题(动态规划)

给你⼀个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两 个属性。其中第 i 个物品的重量为 wt[i] ,价值为 val[i] ,现在让你⽤ 这个背包装物品,最多能装的价值是多少?import java.util.Scanner;/** * 给你⼀个可装载重量为 W 的背包和 N 个物品,每个物品有重量和价值两 个属性。其中第 i 个物品的重量为 wt[i] ,价值为 val[i] ,现在让你⽤ 这个背包装物品,最多能装的价值是多少? * */public class DP2 {

2020-09-01 11:04:49 145

原创 记录---求数组中不相邻元素的最大和(动态规划)

输入一个只含正数的数组,找到数组满足条件的元素的最大和,条件是:组成最大和的所有元素不能相邻,比如输入数组[1 2 4 1 7 8 3],返回15(1+4+7+3)import java.util.Scanner;/** * 数组中不相邻数字相加最大和* */public class DP1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stri

2020-08-31 22:43:25 1662 2

原创 Cookie与Session

Cookie1.Cookie是什么?Cookie作用?Cookie保存在哪里?翻译过来:曲奇饼干Cookie可以保存会话状态,但是这个会话状态是保留在客户端上。只要Cookie清除,或者Cookie失效,这个会话状态就没有了。Cookie是保存在浏览器客户端上的。Cookie可以保存在浏览器的缓存中,浏览器关闭Cookie消失。Cookie也可以保存在客户端的硬盘文件中,浏览器关闭Cookie还在,除非Cookie失效。2.Cookie只有在javaweb中有吗?Cookie不止是在

2020-08-28 11:35:17 186

原创 关于web系统中资源跳转:

关于web系统中资源跳转:1、跳转包括两种方式:转发- forward重定向-redirect2、转发和重定向代码怎么完成?转发:request.getRequestDispatcher("/b").forward(request,response);重定向:response.sendRedirect(request.getContextPath()+ "/b");3、转发和重定向的相同点和不同点:相同点:都可以完成资源跳转不同点: *转发是request对象触发的 *重定向

2020-08-27 12:24:23 320

转载 threadlocal理解

threadlocal理解

2020-08-17 23:37:38 140

原创 常用排序算法记录

1.冒泡排序1.1算法步骤比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。正序时最快,反序时最慢1.2 Java代码实现public class BubbleSort implements IArraySort { @Override public int[

2020-08-12 13:11:12 96

原创 JVM类加载过程

JVM 类加载机制分为五个部分:加载,验证,准备,解析,初始化,下面我们就分别来看一下这五个过程。1.加载加载是类加载过程中的一个阶段,这个阶段会在内存中生成一个代表这个类的 java.lang.Class 对 象,作为方法区这个类的各种数据的入口。注意这里不一定非得要从一个 Class 文件获取,这里既可以从 ZIP 包中读取(比如从 jar 包和 war 包中读取),也可以在运行时计算生成(动态代理),也可以由其它文件生成(比如将 JSP 文件转换成对应的 Class 类)。2.验证这一阶段的

2020-08-03 19:11:42 353

原创 Java中final、finally、finalize的区别与用法

1.finalfinal是一个修饰符也是一个关键字。被final修饰的类无法被继承对于一个final变量,如果是基本数据类型的变量,则其数值在初始化后就不能更改;如果是引用数据类型的变量,则在对其初始化后便不能让其指向另一个对象,但是它指向的对象的内容是可变的被final修饰的方法无法被重写,但允许重载2.finallyfinally是一个关键字。finally在异常处理时一般用来作为执行清除操作。不管有没有异常被抛出或捕获,finally块都会执行,通常用于释放资源。finally正

2020-07-24 22:30:28 127

原创 线程池-动态更新线程池参数

线程池-动态更新线程池参数import java.util.concurrent.*;public class ThreadChangeDemo { public static void main(String[] args) throws InterruptedException { dynamicModifyExecutor(); } /** * 自定义线程池 * */ private static ThreadPoolExecu

2020-07-24 17:01:11 505

原创 使用线程池实现死锁

使用线程池实现死锁话不多说,开搞!import java.util.concurrent.*;/** *使用线程池实现死锁 *@author com.xiong * * */public class DeadLockDemo { public static void main(String[] args) { //创建两个资源供线程共同操作 Object resource1 =new Object(); Object resourc

2020-07-23 14:26:07 238

原创 JDK动态代理实例--切面类增强业务方法

动态代理动态代理主要有两种方式:jdk动态代理CGLIB动态代理JDK动态代理主要涉及java.lang.reflect包下边的两个类:Proxy和InvocationHandler。其中,InvocationHandler是一个接口,可以通过实现该接口定义横切逻辑生成代理处理器handler,再利用Proxy类的newProxyInstance创建代理类对象,最后通过代理类对象调用业务方法完成动态代理,JDK动态代理只能代理实现了接口的类。JDK代理是不需要第三方库支持的,只需要JDK环境就

2020-07-23 13:57:34 388

原创 Spring Bean的生命周期

Spring Bean的生命周期Spring Bean的生命周期只有这四个阶段。把这四个阶段和每个阶段对应的扩展点糅合在一起虽然没有问题,但是这样非常凌乱,难以记忆。要彻底搞清楚Spring的生命周期,首先要把这四个阶段牢牢记住。实例化和属性赋值对应构造方法和setter方法的注入,初始化和销毁是用户能自定义扩展的两个阶段。在这四步之间穿插的各种扩展点。实例化 Instantiation属性赋值 Populate初始化 Initialization销毁 Destruction实例化 ->

2020-07-23 11:06:51 196

空空如也

空空如也

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

TA关注的人

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