自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(155)
  • 资源 (5)
  • 收藏
  • 关注

转载 Java多线程(一)之volatile深入分析

volatile 变量提供了线程的可见性,并不能保证线程安全性和原子性。什么是线程的可见性:锁提供了两种主要特性:互斥(mutual exclusion) 和可见性(visibility)。互斥即一次只允许一个线程持有某个特定的锁,因此可使用该特性实现对共享数据的协调访问协议,这样,一次就只有一个线程能够使用该共享数据。可见性要更加复杂一些,它必须确保释放锁之前对共享数

2017-08-17 10:34:18 231

转载 Java面试19|过于深入的问题

1、synchronized关键字的实现原理 可以参考:http://www.jianshu.com/p/c5058b6fe8e5 2、CAS是由Unsafe类的compareAndSwap()方法实现的,在操作系统级别是如何实现的? 可以参考:http://blog.sina.com.cn/s/blog_70441c8e0102vrcs.html

2017-08-11 10:29:04 341

转载 Java面试18|关于进程、线程与协程

1、IPC(Inter-Process Communication,进程间通信)与线程通信的几种方式 # 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。# 有名管道 (named pipe) : 有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。# 信号量( semo

2017-08-11 10:28:35 544

转载 Java面试17|Java基础

1、final相关(1)final在编译期的优化 只有在编译阶段能确定这个final引用赋值的内容,编译器才有可能进行编译时优化,而编译期能确定的内容只能来自于常量池中,如int,long,String等常量,不包含new String()等,也不包含方法返回值。将一个方法设成final后,编译器就可以把对那个方法的所有调用都置入“嵌入”调用里(内嵌机制),这样可以提高运行效率。(

2017-08-11 10:28:06 222

转载 java调用shell命令并获取执行结果

使用到Process和Runtime两个类,返回值通过Process类的getInputStream()方法获取[plain] view plain copypackage ark;    import java.io.BufferedReader;  import java.io.IOException;  import java.

2017-08-11 10:22:35 13440 1

转载 Java程序调用带参数的shell脚本返回值

Java程序调用带参数的shell脚本返回值首先来看看Linux中shell变量($#,$@,$0,$1,$2)的含义解释 变量说明:$$ Shell本身的PID(ProcessID)$! Shell最后运行的后台Process的PID$? 最后运行的命令的结束代码(返回值)$- 使用Set命令设定的Flag一览$* 所有参数列表。如”$*”用「”」括起来的

2017-08-11 10:20:04 642

转载 Java面试16|设计模式

1、单例模式:确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。单例模式有以下几个要素:私有的构造方法指向自己实例的私有静态引用以自己实例为返回值的静态的公有的方法        单例模式根据实例化对象时机的不同分为两种:一种是饿汉式单例,一种是懒汉式单例。饿汉式单例在单例类被加载时候,就实例化一个对象交给自己的引用;而懒汉式在调用取得实例方法的时

2017-08-10 09:49:23 320

转载 Java面试系列

如果你的面试简历是如下这样写的,请务必准备回答下面的所有问题。 面试职位:Java高级工程师专业技能:(1)牢固掌握Java基础知识,如集合、并发、I/O等,并对Java源码有一定的研究。 (2)掌握Git、SVN等版本管理工具,熟练使用Maven、Jenkins等工具。(3)熟练使用MySQL数据库,了解InnoDB存储引擎,接触过MySQL的调优

2017-08-10 09:47:22 294

转载 Java面试15|网络

1、查看网络的统计信息:netstat -s 结果中显示统计信息,保护收发包,建立连接的数量netstat -at 列出所有TCP端口netstat -au 列出所有的UDP端口netstat -aut 目前正在运行的TCP/UDP服务netstat常用的参数如下:-s或–statistice 显示网络工作信息统计表。-t或–tcp 显示TC

2017-08-10 09:45:48 415

转载 Java面试14|Session与Cookie

1、在分布式环境,管理Session通常使用下面三种方式:(1)Session Replication 方式管理 (即session复制)将一台机器上的Session数据广播复制到集群中其余机器上使用场景:机器较少,网络流量较小优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问缺点:广播式复制到其余机器有一定廷时,带来一定网络开销

2017-08-10 09:44:48 291

转载 Java面试13|算法

Java写算法时常用的函数:Stackvoid push(E e):将给定元素”压入”栈中。存入的元素会在栈首。即:栈的第一个元素 E pop():将栈首元素删除并返回。Queueboolean offer(E e):将元素追加到队列末尾,若添加成功则返回true。 E poll():从队首删除并返回该元素。 E peek():返回队首元素,但是不删除 

2017-08-10 09:44:12 247

转载 Java面试12|Linux及Shell脚本

1、关于awk命令的面试题 (1)最近登录的5个帐号    1last -n 5 | awk -F ':'(指定域分割符号)  '{print $1}'-n表示number,有多少行需要显示。读入有'\n'换行符分割的一条记录,然后将记录按指定的域分隔符划分域,填充域,$0则

2017-08-10 09:43:36 716

转载 Java面试11|Maven与Git

git的命令一定要掌握,如果学习可以参考:廖雪峰的官方网站 git学习:http://learngitbranching.js.org/?demo 1、Maven 生命周期及Maven多项目聚合与继承Maven的生命周期分如下的9个阶段。(1)clean 清理自动生成的文件,也就是target目录(2)Validate 验证Maven描述文件是否有效

2017-08-10 09:43:13 1565

转载 Java面试10|数据库相关

1、ID分配单点问题 系统使用一张表的自增来得到订单号,所有的订单生成必须先在这里insert一条数据,得到订单号。分库后,库的数量变多,相应的故障次数变多,但由于单点的存在,故障影响范围并未相应的减少,使得全年downtime上升,可用性下降。针对ID分配单点问题,考虑到数据库表分配性能的不足,调研了Tair、Redis、Snowflake等ID分配器,同时也考虑过将ID

2017-08-10 09:42:50 251

转载 Java面试09|多线程

15个顶级Java多线程面试题及回答 http://ifeve.com/15-java-faq/1、关于线程的状态及相互转换(1)join()方法:能够使线程顺序执行。可以将一个任务分为多个子任务,调用join()方法等待这些子任务完成运算,然后汇总结果。需要注意这并不能保证各个子任务线程的结束顺序。(2)线程只能从就绪状态(runnable)这一条唯一路径到运行状

2017-08-10 09:33:12 365

转载 Java面试08|Java重要的类和相关的方法

1、深入理解Class类及其中的方法获取Class类的方法:1、调用Object类的getClass()方法来得到Class对象,这也是最常见的产生Class对象的方法。2、使用Class类的中静态forName()方法获得与字符串对应的Class对象。例如: 1Class c2=Class.forName("MyOb

2017-08-10 09:32:42 196

转载 Java面试07|Redis数据库

1、Redis持久化的几种方式(1)RDB(Redis DataBase)持久化 (2)AOF(Append Only File)持久化 2、Redis的缓存失效策略 主要涉及到expire对主键过期时间的设置。Redis对缓存失效的处理机制大概分为两种,一种是客户端访问key的时候消极的处理,一种是主线程定期的积极地去执行缓存失效清理逻辑参

2017-08-09 20:38:46 282

转载 Java面试05|MySQL及InnoDB引擎

1、InnoDB引擎索引 InnoDB支持的索引有以下几种:(1)哈希索引(2)全文索引(1)B+树索引 又可以分为聚集索引与辅助索引索引的创建可以在CREATE TABLE语句中进行,也可以单独用CREATE INDEX或ALTER TABLE来给表增加索引。删除索引可以利用ALTER TABLE或DROP INDEX语句来实现。(1)使用ALTE

2017-08-09 20:38:18 1225

转载 Java面试04|Spring框架

1、动态代理的几种方式  Java主要有两种代理,JDK和Cglib动态代理。先看JDK代理实例如下:JDK创建代理有一个限制,即它只能为接口创建代理实例。举个例子如下:1234567891011121314151617

2017-08-09 20:37:31 215

转载 Java面试03|并发及锁

1、synchronized与Lock的区别 使用synchronized这个关键字实现的同步块有一些缺点: (1)锁只有一种类型 (2)线程得到锁或者阻塞 (3)Lock是在Java语言层面基于CAS自旋方式来实现锁的,在并发条件下,其性能要相对比synchronized好一些。 为了解决如上的各种问题,后来又提出了一种更为复杂的锁 - 线程锁。线

2017-08-09 20:36:30 241

转载 Java面试02|Java集合

Java中一般接触到的集合如下图:关于Java中并发集合有:(1)CouncurrentHashMap(2)CopyOnWriteArrayList(3)LinkedBlockingQueue(4)ArrayBlockingQueue 这些的适用场景及其实现原理是必须要掌握的。 1、Hash的死锁原因 参考:H

2017-08-09 20:34:22 232

转载 Java面试01-Jvm相关

1、JVM内存查看与分析,编写内存泄露实例  堆区、栈区、方法区、本机内存都有可能内存溢出。在这里编写堆区内存溢出实例。如下(来自《深入理解Java虚拟机》一书。12345678910// -Xms20m -Xmx20m -XX:+HeapDumpOn

2017-08-09 20:33:01 261

转载 NIO学习笔记

Channel和Buffer概述与实现所有的IO在NIO中都是从channel开始,channel像是流,buffer像是缓冲区,流可以读到缓冲区中,缓冲区可以写到流中,如下图所示channel主要实现:FileChannel(文件流),DatagramChannel(数据报流-UDP),SocketChannel(socket流-TCP),ServerSocket

2017-08-09 12:37:26 166

转载 设计模式初探-访问者模式

访问者模式(VISITOR),提供一个作用于某对象结构中各元素的操作表示,并使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作,属于对象行为型模式。使用Visitor模式,必须定义两个类层次:一个对应于接受操作的元素(Element层次),另一个对应于定义对元素的操作的访问者(Visitor层次)。给访问者类层次增加一个新的子类即可创建一个新的操作,但如果新增一个接受操作的元素,则需要

2017-08-09 10:28:11 137

转载 设计模式初探-模板方法模式

模板方法模式(TEMPLATE METHOD),用于定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤,属于类行为型模式。模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为

2017-08-09 10:27:35 162

转载 设计模式初探-策略模式

策略模式(STRATEGY),别名政策(Policy),通过将一系列的算法封装成一个个的策略对象,使算法可以相互替换,并能独立于使用它们的客户而变化,属于对象行为型模式。软件开发过程中,通常要设计相应的算法,比如电子网站中经常有折扣活动,并且用户等级不同,享受的折扣也不一样。通过使用策略模式将折扣算法封装起来,不仅可以用于网商平台,还可以用于手持设备中折扣活动的实现。封装的特性确保了扩展算法和增加

2017-08-09 10:26:59 164

转载 设计模式初探-状态模式

状态模式(STATE),别名状态对象(Objects for States),允许一个对象在其内部状态改变时改变它的行为,看起来就像修改了它的类,属于对象行为型模式。状态模式通过将所有与特定状态相关的行为封装到一个或多个状态对象中,当状态改变时,其行为也会随着改变,从而简化大量的条件判断,使代码逻辑更清晰,更易于维护。大千世界,可以看做各个状态的转换。人,生老病死;水,固液气三态转化;天气,阴晴不

2017-08-08 09:25:17 171

转载 设计模式初探-观察者模式

观察者模式(OBSERVER),又称发布-订阅(Publish-Subscribe),依赖(Dependents),通过定义对象间的一对多的依赖关系,达到当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自动更新,属于对象行为型模式。观察者模式在软件设计中很常用,比如经典的MVC模式,Model为目标类,View为观察者,Controller为更新管理器。首先更新管理器即控制器先将视图和模

2017-08-08 09:24:10 192

转载 设计模式初探-备忘录模式

备忘录模式(MEMENTO),又称Token,通过在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,以待需要时将该对象恢复到原先保存的状态,属于对象行为型模式。备忘录模式很适合实现软件中的撤销和重做功能,在字处理软件,图像编辑软件,数据库管理软件中十分常见。游戏里也常常可以使用备忘录模式来保存游戏的状态,如游戏失败前的状态,游戏暂停时的状态,以备玩家重新接着死亡前的关卡继

2017-08-08 09:23:13 141

转载 设计模式初探-中介者模式

中介者模式(MEDIATOR),又称调停者模式,通过使用一个中介者对象来封装一系列的对象交互,属于对象行为型模式。中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。现实生活中,到处充斥着中介者模式的身影。上到庄严的法院,下到为程序员带来福音的婚姻介绍所或交友平台,还有可恶的房产中介,都是中介者模式的体现。比如,你参加一个相亲活动,20多对男女如饥似渴地寻找着自

2017-08-08 09:22:19 174

转载 设计模式初探-迭代器模式

迭代器模式(ITERATOR),又称游标(Cursor),提供了一种方法,用于顺序访问一个聚合对象中的各个元素,而不需暴露该对象的内部表示,属于对象行为型模式。迭代器模式通过将对聚合对象(通常为列表)的访问和遍历从聚合对象中分离出来并放入一个迭代器对象中,迭代器对象知道如何遍历列表,这样不仅可以简化聚合对象的实现(将遍历操作交给迭代器负责,自己只负责保存),还可以以不同的方式遍历列表。一、使用

2017-08-08 09:20:47 185

转载 设计模式初探-解释器模式

解释器模式(INTERPRETER),通过面向对象的方式构造语言解释器,并使用该解释器按照一定的文法解释语言中的句子,属于类行为模式。记得大学时候参加过机器人足球比赛,通过面板输入指令"up move 10 and left run 8",足球机器人就会执行相应的动作。将这些指令组合就能完成高难度的射门,躲避,可谓智能也!下面将通过机器人指令解释来阐述解释器模式的强大。一、使用场景1、

2017-08-08 09:19:38 179

转载 设计模式初探-责任链模式

责任链模式(CHAIN OF RESPONSIBILITY),通过将多个对象连成一条链,并沿着这条链传递请求,直到有一个对象处理它,属于对象行为型模式。责任链模式使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。JavaScript的事件处理,工作流系统中公文的多级审批,Web开发中的过滤器和拦截器都可以采用责任链模式实现。一、使用场景1、有多个对象可以处理同一个请求

2017-08-08 09:16:38 138

转载 设计模式初探-享元模式

享元模式(FLYWEIGHT),通过运用共享技术有效地支持大量细粒度的对象,由于处理的是细粒度的对象,所以也称为轻量级模式,属于对象结构型模式。享元模式的共享技术是通过区分对象的内部状态和外部状态来实现的。内部状态是对象的内在特征,不会随环境的变化而变化,所以能够共享。外部状态是对象的外在表现,随环境的改变而改变,不可以共享。对于我们经常查看的文章,参考的资料,组成它们的字母或汉字代表的意义是不变

2017-08-08 09:15:47 223

转载 设计模式初探-外观模式

外观模式(FACADE),也叫门面模式,属于对象结构型模式,通过为子系统中的一组接口提供一个一致的界面(外观对象)来简化客户端与子系统之间的交互。Facade模式定义了一个高层接口,这个接口为子系统中较一般的设施提供一个单一而简单的界面,从而使子系统间的通信和相互依赖关系达到最小,并且隔离了客户类和子系统类,降低了两者的耦合度。如下图所示:一、使用场景 1、 当要为访问一系列复

2017-08-08 09:15:14 161

转载 设计模式初探-装饰模式

装饰模式(DECORATOR模式),又称包装器Wrapper,属于对象结构型模式,用于动态地给一个对象添加一些额外的职责。就增加功能而言,Decorator模式比生成子类更为灵活。它通过使用对象之间的关联关系取代类之间的继承关系,引入的装饰类既可以调用被装饰类的方法,还可以添加新的业务逻辑,以达到扩充被装饰类的功能。装饰模式和适配器模式虽然都称为包装器,但两者还是不同的。装饰模式只是在原有对象的基

2017-08-08 09:14:18 166

转载 设计模式初探-桥接模式

桥接(Bridge)模式,又称Handle/Body模式,属于对象结构型模式。用于将抽象部分与它的实现部分分离,使它们都可以独立地变化。比如常见的电脑窗口界面,不同的操作系统其窗口界面绘制的原理肯定不一样。这里,窗口界面就相当于抽象部分(Abstraction),而窗口界面本身也可以随着功能的不同而进行扩充,扩充的窗口就是抽象窗口的扩充抽象类(RefinedAbstraction),这些抽象需要具

2017-08-07 16:47:15 198

转载 设计模式初探-代理模式

代理模式(PROXY),别名Surrogate(代理),通过为其他对象提供一种代理以控制对这个对象的访问,属于对象结构型模式。软件开发中,经常会出现特殊对象,创建这些对象时开销很大,比如文档中的图片,数据库连接等,我们应该根据需要对这些对象进行创建,当图片可见时创建图片对象,当数据库连接真的需要执行时创建连接。通过创建代理,我们可以控制对象的创建,访问时机。创建图片代理,将其作为占位符插入到文档中

2017-08-07 16:44:30 223

转载 设计模式初探-适配器模式

适配器模式,又称包装器Wrapper,属于类对象结构型模式,用于将一个类的接口转换成客户希望的另外的一个接口,从而解决因接口不兼容导致类之间不能工作的问题。Adapter模式是不兼容结构的协调者,犹如法官大人,给人们带来希望。生活中处处可见适配器模式的踪影,电源适配器,USB适配器,生活因为适配而美好!一、使用场景1、系统中已存在类的接口不满足现有需求,且一般无法改变现有类的接口,比如该类

2017-08-07 16:42:20 156

转载 设计模式初探-Prototype模式

Prototype模式,也称原型模式,属于对象创建型模式。通过使用原型实例指定创建对象的种类,然后拷贝这些原型来创建新的对象。Prototype模式允许一个对象再创建另一个可定制的对象,即使不知道任何创建的细节,就像JavaScript中通过prototype原型公用基本的方法或属性,然后在克隆后的原型基础上添加自己的定制。一、使用场景1、当一个系统应该独立于它的产品创建,构成和表示时,这

2017-08-07 16:41:09 187

层次聚类方法的CURE算法研究

层次聚类方法的CURE算法研究

2016-05-01

27个java常用的工具类

27个java常用的工具类,方便程序开发

2016-05-01

java课程设计记事本

开发环境:netbeans集成开发环境。界面与记事本一样,各个功能齐全,代码也比较详细。。

2011-06-10

java课程设计仿4s店汽车信息管理系统

开发工具:netbeans集成开发工具,access2003数据库。主要分为两个子系统,一个是汽车客服在线管理系统,另一个是汽车零配件管理系统。。

2011-06-10

C++课程设计学生信息管理系统

类和对象的实现,主要有三个类people、student、administration,分为学生登录和管理员登录两个部分。

2011-06-08

空空如也

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

TA关注的人

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