自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 动态规划的一个简单实例java

如果一个问题可以分为多个子问题,这若干个子问题如果是相互独立的,那么我们可以使用分治的思想解决,如果分解的子问题之间并不是独立的,那么就可以使用动态规划来解决了。动态规划原理:一个最优策略的决策过程中产生的子问题的子策略必然也是最优的,简单的一个说明就是,最终的策略最优,必然是在前一个最优策略的基础上做出的最优策略。动态规划的一般步骤:1)描述最优解的结构2)对最优解的值进行递

2017-06-01 14:02:41 840

原创 java继承关系中静态代码块、非静态代码块的执行顺序

class Parent { private String name = setName(); private static Parent p = new Parent("父类"); public Parent() { } public Parent(String name) { System.out.println("父类构造器"); this.name =

2017-05-24 22:29:57 376

原创 servlet的初始化过程

1、Web Client 向Servlet容器(Tomcat)发出Http请求2、Servlet容器接收Web Client的请求3、Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中4、Servlet容器创建一个HttpResponse对象5、Servlet容器调用HttpServlet对象的service方法,

2017-05-24 16:46:39 2675

原创 spring中bean的初始化过程

Bean的完整生命周期经历了各种方法调用,这些方法可以划分为以下几类: 1、Bean自身的方法:  这个包括了Bean本身调用的方法和通过配置文件中的init-method和destroy-method指定的方法 2、Bean级生命周期接口方法:  这个包括了BeanNameAware、BeanFactoryAware、InitializingBean和Di

2017-05-24 16:42:33 349

原创 静态synchronized方法和非静态synchronized方法的锁对象不是同一个

静态synchronized方法的锁是Java文件对应的Class对象,而非静态synchronized方法的锁是是个实例对象,这两个锁并不是同一个,因此静态synchronized方法和非静态synchronized方法之间不会相互干扰验证public class Service { synchronized public static void printA() { //Class锁 t...

2017-05-21 17:32:21 4080 2

原创 Java多线程中join的用法

在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时计算,主线程会比子线程提前结束,如果主线程需要用到子线程返回的结果,就要用到join()方法了,这样就将异步的变为同步的了。比如下面这个例子,如果不用join(),我们将无法控制运行流程子线程随机休眠时间public class ThreadA extends Thread{ public vo

2017-05-21 16:06:35 634

原创 使用BlockingQueue,多个线程同时处理同一类型的多个资源

如果是单线程处理一批事情,例如,有16个日志需要处理,各个日志之间是独立的,假设处理每个的时间是1秒, 一共需要处理16秒才能处理完。现在使用多线程来加速处理时间,思路:创建4个线程,每个线程从一个任务列表中获取一个任务,进行处理,处理完后,再获取一个,直到任务被处理完。因为每个任务(处理日志)是独立的,因此,每个线程就是独占该任务资源,因此处理任务时并不需要加锁,需要加锁的是任务列表

2017-05-21 10:33:21 2106

原创 Java使用Condition唤醒指定线程

使用ReentrantLock实现同步首先创建一个功能类,用于实现线程的功能public class MyService { private Lock lock = new ReentrantLock(); public void methodA() { try { lock.lock(); //加锁,作用相当于synchronized Syste

2017-05-20 17:36:01 7549

原创 Java子线程和主线程交替输出(一个简单的实例)

实现主线程和子线程的交替输出打印,首先创建一个实现线程方法的Servicepublic class Service { boolean flag = false; //这是一个控制sub和mian的开关 public synchronized void sub(){ while(flag) { //因为flag初始值是false,所以当子线程获取锁进入时不会等待,会直接输出打

2017-05-20 16:42:19 3653

原创 Map按Key或者Value排序

今天做了一道算法题,简单总结一下思路题目如下:题目描述数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。输入描述:先输入键值对的个数然后输入成对的index和value值,以空格隔开输出描述:输出合并后的键值对(多行)输入例子:40 10 21 23 4输出例子:0 31 23 4题目的思路大概是这样的:1、首先...

2017-05-11 16:53:41 560

空空如也

空空如也

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

TA关注的人

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