自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 资源 (12)
  • 收藏
  • 关注

原创 ThreadLocal原理

ThreadLocal和Thread关系:Thread中维护了一个ThreadLocalMap,key是ThreadLocal,value是要存储的数据副本,每次存取ThreadLocal,都是从当前线程中的ThreadLocalMap找对应ThreadLocal的key对应的value;key为什么被设计为弱引用?回归本质,ThreadLocalMap是用来存放对象的,在一次线程的执行栈中,存放数据后方便我们在任意的地方取得我们想要的值而不被其他线程干扰。ThreadLocalMap本身并没有

2021-10-09 16:36:49 304 1

原创 对接第三方阿里云api接口 示例代码

最近对接了一个第三方阿里云api的接口,过程并不是很顺利,所以把最后成功的代码作为案例发出来,为了方便对后面有需要的人,有一些参考把。代码没做太多封装public List<ALaDingPrice> getPrice() throws Exception { String sufUrl = "请求地址"; List<String> arrayPriceStrings = getALaDDinData(sufUrl); List<ALaDingP

2021-09-23 21:02:08 919

原创 Java 线程池之源码解析

Executors为线程池工具类,主要可创建创建固定数量线程数的线程池,不回收public static ExecutorService newFixedThreadPool(int nThreads) { return new ThreadPoolExecutor(nThreads, nThreads, 0L, TimeUnit.MILLISECONDS, ...

2020-11-05 18:26:13 165

原创 Java之AQS源码解析

锁状态: 枚举 含义 0 当一个Node被初始化的时候的默认值 CANCELLED 为1,表示线程获取锁的请求已经取消了 CONDITION 为-2,表示节点在等待队列中,节点线程等待唤醒 PROPAGATE 为-3,当前线程处在SHARED情况下,该字段才会使用 SIGNAL ..

2020-11-05 10:55:46 135

转载 java编译期优化

java编译期优化java语言的编译期其实是一段不确定的操作过程,因为它可以分为三类编译过程:1.前端编译:把.java文件转变为.class文件2.后端编译:把字节码转变为机器码3.静态提前编译:直接把*.java文件编译成本地机器代码从JDK1.3开始,虚拟机设计团队就把对性能的优化集中到了后端的即时编译中,这样可以让那些不是由Javac产生的Class文件(如JRuby、Groo...

2019-08-27 11:49:10 244 1

翻译 Java对象模型

https://www.jianshu.com/p/e2a1cbc4ea13?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

2019-08-23 14:59:17 92

转载 GC收集器

https://blog.csdn.net/qq_26525215/article/details/84294481

2019-08-13 21:09:36 87

翻译 java内存的分配策略

1. 内存分配策略按照编译原理的观点,程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的。静态存储分配是指在编译时就能确定每个数据目标在运行时刻的存储空间需求,因而在编译时就可以给他们分配固定的内存空间。这种分配策略要求程序代码中不允许有可变数据结构(比如可变数组)的存在,也不允许有嵌套或者递归的结构出现,因为它们都会导致编译程序无法计算准确的存储空间需求。栈式存储分配也可称...

2019-08-13 17:22:11 172

翻译 java AQS

java AQS,基类是AbstractOwnableSynchronizer,AbstractOwnableSynchronizer主要是设置锁当前拥有线程,AbstractQueuedSynchronizer,主要有Sync继承实现,不同的子类要实现对应的tryAcquire(int),tryRelease(int),tryAcquireShared(int),tryReleaseShared...

2019-08-12 21:00:28 497

转载 Java偏向锁、自旋锁、轻量级锁、重量级锁

一、自旋锁如果持有锁的线程能在很短时间内释放锁资源,那么那些等待竞争锁的线程就不需要做内核态和用户态之间的切换进入阻塞挂起状态,它们只需要等一等(自旋),等持有锁的线程释放锁后即可立即获取锁,这样就避免用户线程和内核的切换的消耗。但是线程自旋是需要消耗cup的,说白了就是让cup在做无用功,如果一直获取不到锁,那线程也不能一直占用cup自旋做无用功,所以需要设定一个自旋等待的最大时间。...

2019-08-01 20:30:44 117

原创 Spring ignoreDependencyInterface功能

ignoreDependencyInterface的主要功能是忽略给定接口的自动装配功能,也就是当有忽略的接口类,自动装配会忽略这部分类的初始化装配,因为某种情况下,此时的接口实现类不能初始化,列如BeanNameAware,要想装配这个接口的实现对象,可以实现这个接口,通过实现的set方法进行装配。...

2018-12-16 19:35:30 4667

原创 Spring整合Mybatis

今天特地整理了一下Spring和Mybatis的整合:1,对应sql接口自动生成实现类Spring配置文件添加&lt;bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"&gt;        &lt;property name="basePackage" value="com.spring.mapper" /&...

2018-08-24 14:04:02 181

转载 观察者模式

观察者模式,不是很复杂的一个模式,主要还是通过组合思想来实现的,被观察者持有一个或这多个观察者的引用,java.util类库已经有接口实现了,使用非常方便,不过要注意的一点是销毁观察者的时候要将其从被观察者的队列中删除,不然观察者对象不会被垃圾收集,造成内存泄漏,并且已死的Observer仍会被通知到,有可能造成意料外的错误,而且随着列表越来越大,notifyObservers操作也会越来越慢。

2016-12-24 23:49:12 229

翻译 redis与DB数据同步问题

最近做的一个项目中很多地方用到了redis,其中纠结了一下redis的数据持久化问题,毕竟是缓存,数据随时都有可能丢失,虽然概率不大,况且redis还会将数据持久到安装路径的一个文件中,但还是要保证缓存数据与持久化数据的一致性,这个问题总结了一下(看到了一个不错的博文),其实就是读和写,还有就是要注意谁先谁后的问题。  Redis 是一个高性能的key-value数据库。

2016-10-30 01:33:49 9134 4

转载 Maven的父子项目引用关系

公司项目中主要使用Maven构建,特别是父子项目构建,这个里引用一篇讲的比较全的博文,以提供以后温故!http://blog.csdn.net/whuslei/article/details/7989102题记最近刚完成一个用Maven构建的Web项目,看了一些Maven方面的书,比如《maven实战》,但还是对Maven多模块项目理解得不清晰,所以花了一点时间好好研究

2016-09-10 12:15:07 11047 1

原创 jetty三种启动方式

今天把jetty稍微研究了一下,之前使用的全是tomcat,所以开始接触jetty感觉有点别扭,不过总算走了一遍,总结了三种启动jetty的方式,1,直接硬编码方式,很简单:public static void main(String[] args) { try { // 服务器的监听端口 Server ser

2016-08-28 19:36:03 11660 1

原创 Maven 选择文件打包

打jar包: org.apache.maven.plugins maven-jar-plugin 2.4 com/cheng/a.class//打包文件 com/cheng/b.class//不打包文件 大war包: org.apache.maven.plugins maven-war-plug

2016-08-26 22:41:54 1079

转载 CyclicBarrier

1、类说明:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)。在涉及一组固定大小的线程的程序中,这些线程必须不时地互相等待,此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用,所以称它为循环 的 barrier。2、使用场景:需要所有的子任务都完成时,才执行主任务,这个时候就

2016-08-10 15:55:52 204

转载 CountDownLatch

1、类介绍一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。用给定的计数 初始化 CountDownLatch。由于调用了 countDown() 方法,所以在当前计数到达零之前,await 方法会一直受阻塞。之后,会释放所有等待的线程,await 的所有后续调用都将立即返回。这种现象只出现一次——计数无法被重置。 一个线程(或者多个), 等

2016-08-10 15:26:20 202

转载 ConcurrentHashMap

集合是编程中最常用的数据结构。而谈到并发,几乎总是离不开集合这类高级数据结构的支持。比如两个线程需要同时访问一个中间临界区(Queue),比如常会用缓存作为外部文件的副本(HashMap)。这篇文章主要分析jdk1.5的3种并发集合类型(concurrent,copyonright,queue)中的ConcurrentHashMap,让我们从原理上细致的了解它们,能够让我们在深度项目开发中获益非浅

2016-08-10 10:22:02 214

原创 log4j实现自动打印所有异常信息

因为最近工作中经常用到log4j2查看日志,所以昨天把log4j2的内容又好好看了一下。log4j2记录日志信息只要log.info()将需要的信息记录就好了,用起来非常方便。但考虑到只要程序中有异常,就要将异常记录,所以我们无法手动的将所有异常信息通过log.info()记录(除非每步操作都要捕获异常,并将异常记录),所以这是个问题,在网上找了一下,大多数都答非所问,不过最终找到答案,就是通过S

2016-08-06 14:32:03 6393

翻译 SpringMVC配置总结

默认加载前端控制器从\org\springframework\web\servlet\DispatcherServlet.properties件中加载处理器映射器、适配器、视图解析器等组件,如果不在springmvc.xml中配置,则使用默认加载的注解的处理器映射器和适配器(所以没有配映射器和适配器同样可以运行)在spring3.1之前使用org.springframewo

2016-08-02 00:31:38 236

翻译 mysql密码忘记,强制修改

今天装了一下mysql,第一次登陆竟然要密码(哪来的密码啊),只能重置密码了,下面是步骤:开始--》运行--》cmd(window10 win+x)进入mysql安装目录的bin文件夹(客户都没设置环境变量找不到mysql命令只能到那个目录)比如:D:\Program Files\MySQL\MySQL Server 5.0\bin>(window10 cd /d D:\Program

2016-07-30 12:12:57 1867

原创 动态事件绑定

今天项目中有一个问题,就是关于动态生成的HTML标签的事件动态绑定,我原来是直接在动态生成的HTML标签后面,执行this.method();方法是可以绑定了,但原来符合的标签进行的多次方法绑定,所以后面会造成同一个事件的多次运行,所以在这里对这个问题进行总结,(总结是个很好的习惯)引用了一段别人的说明总结:情况一: HTML代码存放在JS中,请看以下代码:第1行内容 第2行内容 第3

2016-06-24 13:23:14 817

原创 Maven中<dependencies>节点跟<dependencyManagement>节点的区别

dependencyManagement 中的 dependencies 元素只表明依赖项版本的优先选择,并不影响项目的依赖项。所以Parent POM的有dependencyManagement 中的 dependencies 元素不会自动的加到child的dependencies 列表里。只有child里有同样的dependencies 时,才会被parent中dependencyManage

2016-03-20 19:31:03 377

原创 Maven的聚合和继承

公司项目用了Maven,所有花费一天学习了一下,感觉挺不错的工具。注意:依赖调解原则1.依赖路径短的优先2.后声明的优先3.路径长度相同,声明顺序优先1.聚合:这里配置了,这样子项目就不需要重复配置了 project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www

2016-03-20 14:53:33 253

转载 怎么理解Condition

今天看了一下ReentantLock中的Condition,看了好几篇关于这方面的文章,说的都不够详细,不过看到http://www.importnew.com/9281.html这篇文章说的都蛮详细的,都说道了重点上。所有这里转载一下。在java.util.concurrent包中,有两个很特殊的工具类,Condition和ReentrantLock,使用过的人都知道,Reentrant

2016-01-12 14:01:44 545

转载 Lock和synchronized比较详解

Java并发编程:Lock今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章,注意红色字体。  在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。

2016-01-11 16:51:43 10579 1

原创 Java关闭钩子

注册添加钩子方法:Runtime.getRuntime().addShutdownHook(new shutdownHook());关闭钩子shutdownHook的创建满足条件:    1.创建Thread的子类    2.实现run方法,应用程序关闭时会调用该方法,不需要调用start方法,有方法自动调用    3.在应用中实例化关闭钩子类    4.使用Runtime

2016-01-06 16:18:05 689

原创 Mysql 的连接(join)和子查询

连接(JOIN)和子查询子查询一般是将查询出来的结果作为其他查询的结果使用。例如,我们要将客户基本信息表中没有任何订单的客户删除掉,就可以利用子查询先从销售信息表中将所有发出订单的客户ID取出来,然后将结果传递给主查询,如下所示: DELETE FROM customerinfo WHERE CustomerID NOT in (SELECT CustomerID FROM s

2016-01-04 22:43:34 5691

转载 mysql in和exist比较

in 是把外表和内表作hash 连接,而exists是对外表作loop循环,每次loop循环再对内表进行查询。一直以来认为exists比in效率高的说法是不准确的。 如果查询的两个表大小相当,那么用in和exists差别不大。 如果两个表中一个较小,一个是大表,则子查询表大的用exists,子查询表小的用in(从另一方面解释:in是先进行外表查询,再将外表查询结果与子查询的内表进行比较。e

2016-01-03 20:08:18 513

转载 线程池

诸如web服务器、数据库服务器、文件服务器和邮件服务器等许多服务器应用都面向处理来自某些远程来源的大量短小的任务。构建服务器应用程序的一个过于简单的模型是:每当一个请求到达就创建一个新的服务对象,然后在新的服务对象中为请求服务。但当有大量请求并发访问时,服务器不断的创建和销毁对象的开销很大。所以提高服务器效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一些很耗资源的对象创建和销毁,这样就引

2015-12-31 20:42:38 239

转载 mysql explain中的type列含义和extra列的含义

很多朋友在用mysql进行调优的时候都肯定会用到explain来看select语句的执行情况,这里简单介绍结果中两个列的含义。1 type列官方的说法,说这列表示的是“访问类型”,更通俗一点就是:mysql找到需要的数据行的方式。一下就是从效率最差到最好顺序分别介绍下:All 这个就是所谓的全表扫描,没有用到任何的index,mysql就是从头到尾把整个表遍历一边,找到所需

2015-12-28 21:20:37 876

转载 ConcurrentHashMap详解

简介ConcurrentHashMap 是 util.concurrent 包的重要成员。本文将结合 Java 内存模型,分析 JDK 源代码,探索 ConcurrentHashMap 高并发的具体实现机制。由于 ConcurrentHashMap 的源代码实现依赖于 Java 内存模型,所以阅读本文需要读者了解 Java 内存模型。同时,ConcurrentHashMap 的源代

2015-12-18 20:33:27 733

原创 多线程连接数据库问题

今天突然想到一个问题,就是多线程情况下访问操作数据库中的并发问题。数据库中的一个连接对应一个数据库的事务,一般有两种访问方案:1,通过一个线程对应一个连接,不过中方式感觉太奢侈了,所有一般用连接池,限制总的连接数,但当访问线程较多的情况下,连接要不断的切换,性能上会有影响的。2,一个连接限制一定数量的访问线程,虽然数据库中有事务并发访问安全机制,但这是正对多事务的,我们这里使用多线程共

2015-11-17 22:25:47 8108

原创 23种设计模式(3):模版方法模式

模版方法就是父类定义一系列抽象方法,以及一个具体方法,具体方法是通过调用组合其内部抽象方法实现,而其内部抽象方法是有不同的实现子类来完成的,也即是模版类只指定大的实现框架,具体的实现有不同的子类实现,实例图如下://AbstractDisplay实现display,内部实现细节有不同的子类实现public abstract class AbstractDisplay{ public

2015-11-16 12:05:03 305

原创 23种设计模式(2):适配器模式

适配器模式就是将原来的方法进行包装,转化为新的方法,UML图如下:/*Banner类*/public class Banner{ private String string;public Banner(String string){ this.string = string; }public void showWithParen(){ System.out.pri

2015-11-16 10:49:00 329

转载 23种设计模式(1):迭代器模式

之前看过几遍23种设计模式,每次看完既忘,所以做一个分类记下来,方便以后学习。转自:http://blog.csdn.net/zhengzhb/article/details/7610745定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:       如果要问java中使用最多的一种模式,答案不是单例模

2015-11-15 22:49:59 255

原创 求子数组中长度最长的子数组

这一题用动态规划的思想解决的,算法时间复杂度和空间复杂度都不太好,不过动态规划的思路基本都是这样的。如果求和最大字数组,同样可以对所有字数组进行叠加判断,不过最好在算法中改进一下,可以减少算法计算量。package text;import java.util.ArrayList;import java.util.Arrays;import java.util.List;/** * PD

2015-11-02 12:30:17 657

转载 线程的中断

转自:http://blog.csdn.net/axman/article/details/562249不客气地说,至少有一半人认为,线程的"中断"就是让线程停止.如果你也这么认为,那你对多线程编程还没有入门.在java中,线程的中断(interrupt)只是改变了线程的中断状态,至于这个中断状态改变后带来的结果,那是无法确定的,有时它更是让停止中的线程继续执行的唯一手段.不但

2015-11-01 20:01:41 754

matlab最全的图像处理方面的工具箱

本人做matlab7.0上面没有图像处理的一些工具函数,这个是我找到的最全的工具箱

2015-05-01

w3c api(css Html js )

中文版,完全可以使用,本人亲测,包含前端开发的所有API

2014-04-11

WEB英文论文翻译中文(2013年)

此为老师作业,翻译2013年一篇英文论文,纯个人一段一段翻译的,校对过,适合研究生的课后作业使用

2014-03-02

图书购物网站

此文件是实现一个小的图书购物网站,有购物车以及购物网站的基本功能,并且可以在这基础上进行扩展,用户购过前必须登录,可以连接数据库进行注册,代码不多,是很适合本科毕业设计使用

2014-03-02

PDF与PPT转化器

用于ppt以及PDF的转化,非常好用,用于ppt以及PDF的转化,非常好用

2013-12-21

李刚疯狂java讲义代码

李刚疯狂java讲义所有代码,直接在光盘上拷的

2013-12-16

王道考研模拟6套卷

计算机考研统考6套卷,计算机网络,数据结构,组成原理,操作系统统考

2012-07-11

计算机考研讲义

计算机专业课几门专业课讲义,重点与考点都说的很详细

2012-03-26

大学网络集成期末考试题

大学网络集成期末考试题,所有重点和原题都在,非常好的东西

2011-11-29

大三计算机专业英语试卷

老师不给的卷子,我们用手机拍的,很有用,考完了,基本考的题目一样

2011-01-03

Samba服务器配置及访问Samba共享

1. 利用rpm命令安装软件包的方法; 2. 安装、配置Samba服务器并启动; 3. 从Linux访问Windows资源; 4. 从Windows访问Linux的资源。

2010-12-26

银行家算法目六、linux模块加载或内核编译

无,可以下载,项目五、linux系统进程间通信方式分析 设计要求: ① 分析linux系统下几种主要的进程通信手段。 ② 共享存储器的方式 ③ 共享文件的通信方式 ④ 消息传递的通信方式 ⑤ ②针对每个通信手段关键技术环节给出详细实例。 ③分析某些通信手段的内部实现机制 项目六、linux网络服务器的配置与管理 设计要求: ①架设samba服务器或ftp服务器。 ②掌握NFS服务器和客户端的安装与配置。 项目七、linux shell程序设计 设计要求: 1.熟练掌握shell的使用,会编写简单的shell程序。 2.Linux环境下利用 shell设计和实现机房的辅助管理系统 3.利用Linux shell进行程序脚本设计,实现两大功能:编辑生成上机课表并自动生成上机用户,进行用户课前和课后管理。 4.主要技术关键的分析 (1) 定义起始登陆界面 ①能显示三种信息:能根据登录用户显示欢迎对象、根据系统时间显示欢迎内容个性化的欢迎信息;有系统初始化、系统管理和退出三个菜单项操作提示菜单; ②能显示当前上课的具体时间(教学第几周、星期几第几节)和系统状态提示信息。 (2)系统初始化 ①生成本机房的上机安排表:上机安排表至少包含十条记录,每条记录应有课程 、班级、起至周、上课节等内容,能对安排表进行显示、添加、删除、修改,复制。 ②生成本机房的上机用户:根据上机安排表自动生成对应的上机用户,一个用户对应于安排表的一条记录,且账号= 班级+课程;密码=班级+课程号 (3)课前准备 ①为用户创建一个工作环境:工作空间和用户资料。 ②校正系统时间;在用户目录下创建工作目录,挂载U盘;查找所需文件;拷贝所需文件;若有压缩包则需打开压缩包;设置文件和目录属性,开放使用权限。 (4)课后整理: ①释放用户空间,进行资料收集。 ②更改文件和目录属性,关闭使用权限,对发生改变和新生成文档要进行打包压缩;移动包到U盘,卸载U盘,删除在用户目录下创建工作目录。 项目六、linux模块加载或内核编译 设计要求:

2010-12-25

空空如也

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

TA关注的人

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