- 博客(34)
- 收藏
- 关注
原创 线程池的submit和execute的区别
多线程里面还有一个比较有意思的地方就是往线程池中提交线程的时候其实有两种方法一种是execute另外一种是submit1. execute提交的方式execute提交的方式只能提交一个Runnable的对象,且该方法的返回值是void,也即是提交后如果线程运行后,和主线程就脱离了关系了,当然可以设置一些变量来获取到线程的运行结果。并且当线程的执行过程中抛出了异常通常来说主线程也无法获取
2017-05-05 23:52:42
24670
3
原创 jdk的CountdownLatch和CyclicBarrier的使用
JDK的current包下提供了一系列的多线程相关的工具类,很多类都是出自Doug Lea之手, 正是这些大神的无私奉献才有了java能够在20年的时间里不断的成熟,不断的发展,才有了当今丰富多彩的java体系的开源世界。其中的CountDownLatch和CyclicBarrier是在JDK5之后加入的,提供了一些线程之间协作的手段。在没有这些类之前,要完成线程之间的协作只有通过join方法
2017-05-05 23:51:22
411
转载 JDK8中的永久代
最近在参加一次面试,被问到JDK中的常量存放在什么地方,JDK8中的永久代去了什么地方。这个问题自己似乎之前有看到过,但是长期没关注过,因此就印象比较模糊了,在这里自己再总结一下。俗话说好记性不如一个烂笔头,现在想来看看真的是如此啊。。根据 JVM 规范,JVM 内存共分为虚拟机栈、堆、方法区、程序计数器、本地方法栈五个部分,如下图所示 1.1 虚拟机栈:每个线程有一个私有的栈,随着线程的创
2017-04-16 16:49:17
10302
1
原创 xx面试归来有感
最近参加了一次阿里的社会招聘会,对自己的触动蛮大的,反思最近一年以来的工作,主要集中在一些业务代码编写,一些 业务方案的设计,实现上来,而对技术上的积累也越来越少了,在终面的时候面试官问了几个java的内容,自己回答的都不是太理想, 如java8里面的常量存放在哪儿,永久代在什么地方,BeanFactory和FactoryBean的区别,Lock和Synchronized的区别,Future对象是
2017-04-16 16:15:12
501
原创 Dubbo源码分析 ---- 基于SPI的扩展实现机制
Dubbo源码分析–基于SPI的可扩展框架 dubbo是阿里巴巴开源出来的一套分布式服务框架,该框架可以比较方便的实现分布式服务的开发,调用等,该框架的教程地址为 http://dubbo.io/Home-zh.htm 代码已经托管到github上。 正好项目里使用了一套网关的框架来做分布式服务开发,该网关的框架是在dubbo的基础上改造而来的,改dubbo默认的基于netty的分布式服务调
2017-03-11 00:25:26
2438
原创 express + redis 构建基于node的开发环境
Node.js的性能毋庸置疑,基于Chrome的V8引擎,使用全异步化的处理方式,使得Node.js具有其他web框架无与伦比的性能优势。异步化的开发模式虽然在性能上有很大的提升,但是个人觉得基于异步化的开发模式,会似的代码分散在各个模块中,对面向对象的封装性有着比较大的侵扰。当然也可能仅仅是个人的一点愚见。言归正传,搭建基于express的web开发框架流程如下1. 安装node环境
2016-01-24 19:43:50
9176
1
原创 NodeJS学习_1
NodeJs : 使用Javascript作为开发语言的一种后台语言,更确切的来讲应该是一种语言框架,使用Chrome的V8引擎作为Javascript的解析器,使得javascript的解析性能不再成为瓶颈,整个Nodejs使用异步调用的方式大大的提高了整个系统的性能为什么异步调用可以提升系统的响应性能,这个也是相对而言的,如果系统是一个计算密集型的系统,那么异步调用并不能显著的提升性能,但
2015-10-21 20:21:02
439
原创 Android中的WebView使用
WebView是Android提供的一个WEB浏览控件,通过这个空间可以调用指定网址的网页以显示HTML标记的页面。可以采用如下的方法来显示Web页面,如下所示:WebVIew webView=new WebView(this);webView.loadUri("http://www.hao123.com");或者采用如下方法来显示已经定义的页面如下所示:WebView
2012-02-23 21:26:14
3414
转载 Android之Intent
Android中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期,由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态)对于Activity,关键是其生命周期的把握(如下图),其次就是状态的保存和恢复(onSaveInstanceState onRestoreInstanceStat
2012-02-22 21:28:22
401
原创 Android中的Service学习
Service是android 系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service运行在自己的进程空间中,有着自己的运行过程。Service的权限(Permissions)在manifest 文件中声明的Service可以被全局访问(所有的应用程序都可以访问这个Service)。为了可以访问这个Service,其
2012-02-22 17:00:12
702
原创 DDoS攻击实施的六大方法
了解DDOS攻击实施方法是我们掌握DDoS攻击的开始,那么另外一个方面对于DDoS攻击方法的了解更是为了确保安全的考虑,那么都有哪些DDoS攻击实施方法呢?我们来一一介绍一下:1、SYN FLOOD方式进行DDOS攻击利用服务器的连接缓冲区(Backlog Queue),
2011-08-25 11:27:30
3337
原创 STLmap的使用
Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下map内部数据的组织,map内部自建一颗红黑树(
2011-08-24 21:08:01
794
原创 常对象成员
常对象是指对象常量,其一般的定义格式如下:类名 const 对象名;或者: const 类名 对象名常对象成员需注意:在定义常对象的时候必须进行初始化,常对象的数据成员不能被刷新常对象成员包括常成员函数和常数据成员一常成
2011-08-22 16:46:14
605
原创 extern "C"用法的含义
去百度笔试的时候有道题是问到extern “C” 的用法,,当时只记得是C++调用C语言中的函数,,前天有时间在网上找了一下资料现贴下如此 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以
2011-06-20 16:56:00
742
原创 Linux中expr命令
expr 命令用途求表达式变量的值。语法expr Expression描述expr 命令读入 Expression 参数,计算它的值,然后将结果写入到标准输出。您必须对 Expression 参数应用以下规则:用空格隔开每个项。 用 / (反斜杠) 放在 shel
2011-06-14 10:07:00
60045
3
原创 关于C语言中的指针的总结与运算符的优先级的总结
<br />int i;//定义一个整形变量i<br />int*p;;//定义一个指向整形变量的指针p<br />int a[n];;//定义一个整形数组a,它有n个元素<br />int *p[n];;//定义一个指针数组p,它由n个指向整形数据的指针元素组成<br />int (*p)[n];;//定义一个指向n个元素的一维数组的指针变量,<br />int f();;;/定义一个返回整形变量值的函数<br />int *p();;;//定义一个返回指针值得函数,返回指向int类型变量的函数<br /
2011-05-28 10:43:00
1801
原创 const char *p,,char const *p,,cahr * const p 三者之间的区别
<br />将一个声明从右向左读,(*读作pointer to),则char * const p读作(p is a const pointer to char)即是:p是一个指向char型的常量指针,它不能指向其他字符串,但是字符串的内容可变,,<br />const char *p;(p is a pointer to a const char) p是指向一个常量字符串的指针,它所指向的字符串不可变<br />char const *p,,同const char *p,,,,,const可以放在变量名的前
2011-05-28 10:22:00
805
原创 const char *p,,char const *p,,cahr * const p 三者之间的区别
<br />将一个声明从右向左读,(*读作pointer to),则char * const p读作(p is a const pointer to char)即是:p是一个指向char型的常量指针,它不能指向其他字符串,但是字符串的内容可变,,<br />const char *p;(p is a pointer to a const char) p是指向一个常量字符串的指针,它所指向的字符串不可变<br />char const *p,,同const char *p,,,,,const可以放在变量名的前
2011-05-28 10:22:00
3325
原创 请定义一个宏,比较两个数a、b的大小,不能使用大于、小于、if语句。
<br />就是定义一个类似函数的宏,宏运算的结果来表示大于和小于。为了简单起见我们假设a,b为整型。<br />我是这样想的,如果可以用小于号的话,可以这么写:<br />#define compare(a,b) ((a-b)<0 ? -1 : ((a-b) == 0 ? 0 : 1))<br />这样一来的话:<br />compare(a,b) == -1表示a<b<br />compare(a,b) == 0表示a==b<br />compare(a,b) == 1表示a>b<br /><br />
2011-05-28 10:11:00
4008
原创 HashTable 和HashMap的区别
<br /> Hashtable和HashMap类有三个重要的不同之处。第一个不同主要是历史原因。Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现。 <br /> <br /> 也许最重要的不同是Hashtable的方法是同步的,而HashMap的方法不是。这就意味着,虽然你可以不用采取任何特殊的行为就可以在一个多线程的应用程序中用一个Hashtable,但你必须同样地为一个HashMap提供外同步。一个方便的方法就是利用Colle
2011-05-09 16:40:00
503
原创 腾讯面试总结
<br />上周六去腾讯的暑期实习生笔试,发现QQ的效率确实很快的,,晚上就已经出笔试的结果了,,很幸运竟然接到面试的通知了,,笔试刷掉了大概四分之三的人了,,通知第二天去哈市的国际饭店参加面试,,晚上九点钟得到的通知,,,哎,就那么一点时间去准备,而且还一点都不知道会面试什么都东西,于是乎就准备了一下windows下面的网络编程的东东,有了上次的淘宝的面试教训后,觉得一定要把基本功做好,于是就抛开了那些所谓的ssh框架东东的,,然后又在网上看别人的面试经验,一顿的总结<br />然后周日中午来实验室打印简
2011-04-28 16:26:00
1052
1
原创 Java中的网路程序设计
<br />Java中基于TCP/IP的网路程序设计主要由以下几个类来实现,<br />1,,InetAdderss,主要的作用是设置IP地址,该类有若干个构造函数,以及一些静态的方法,详细的信息可见JDK参考文档,比较常用的几个方法如下,<br />public String getHostAdderss();<br />public synchronized static InetAdderss getLocalHost();<br />public static InetAddress getByNa
2011-04-28 16:02:00
722
原创 JAVA中的文件选择控件
<br />在在java中也有着和vc中一样的文件选择控件,那就是JFileChooser,该控件可以实现和window下的文件选择控件同样的功能,具体的用法如下:<br /><br />JFileChooser chooser = new JFileChooser();<br /> // Note: source for ExampleFileFilter can be found in FileChooserDemo,<br /> // under the demo/jfc director
2011-04-28 15:10:00
4921
原创 静态链接库和动态链接库的区别
<br />静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,则无论你愿不愿意,lib 中的指令都全部被直接包含在最终生成的 EXE 文件中了。但是若使用 DLL,该 DLL 不必被包含在最终 EXE 文件中,EXE 文件执行时可以“动态”地引用和卸载这个与 EXE 独立的 DLL 文件。静态链接库和动态链接库的另外一个区别在于静态链接库中不能再包含其他的动态链接库或者静态库,而在动态链接库中还可以再包含其他的动态或静态链接 库。静态链接库与静态链接库调用规则总体比较如下。<br />对于静态链
2011-04-24 10:33:00
513
原创 Java多线程程序设计
<br />上次淘宝的面试被问到JAVA的多线程操作,囧,,回来后特在网上搜了一下,,<br /> <br /><br />线程的同步<br /> 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。<br /> 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:
2011-04-24 00:12:00
413
原创 Java多线程程序设计
<br />上次淘宝的面试被问到JAVA的多线程操作,囧,,回来后特在网上搜了一下,,<br /> <br /><br />线程的同步<br /> 由于同一进程的多个线程共享同一片存储空间,在带来方便的同时,也带来了访问冲突这个严重的问题。Java语言提供了专门机制以解决这种冲突,有效避免了同一个数据对象被多个线程同时访问。<br /> 由于我们可以通过 private 关键字来保证数据对象只能被方法访问,所以我们只需针对方法提出一套机制,这套机制就是 synchronized 关键字,它包括两种用法:
2011-04-24 00:12:00
483
原创 淘宝面试归来总结
<br />前天收到淘宝的面试电话,但是囿于这几天一直忙于实验室更换电脑的诸多事情,本想提前准备一下的,想着他们会问一些框架方面的知识的,所以就在上午抽时间看了一下spring,中午一直待到一点才去吃饭,然后回宿舍睡一会,也没睡着,,,,,╮(╯▽╰)╭<br />于是乎两点半的时候跑到工大,交了简历,一个工大的学生组织说去那边等着,,就坐在那儿等到起,,一直等了大概半个小时,里面那位工大的才面试完,,等待的过程中遇到一个哈师大大二的学软件的(不知道哈师大怎么还有软件专业,难道要去给中学生教授软件编程?)和
2011-04-21 19:49:00
557
原创 淘宝面试归来总结
<br />前天收到淘宝的面试电话,但是囿于这几天一直忙于实验室更换电脑的诸多事情,本想提前准备一下的,想着他们会问一些框架方面的知识的,所以就在上午抽时间看了一下spring,中午一直待到一点才去吃饭,然后回宿舍睡一会,也没睡着,,,,,╮(╯▽╰)╭<br />于是乎两点半的时候跑到工大,交了简历,一个工大的学生组织说去那边等着,,就坐在那儿等到起,,一直等了大概半个小时,里面那位工大的才面试完,,等待的过程中遇到一个哈师大大二的学软件的(不知道哈师大怎么还有软件专业,难道要去给中学生教授软件编程?)和
2011-04-21 19:49:00
512
原创 淘宝面试归来总结
<br />前天收到淘宝的面试电话,但是囿于这几天一直忙于实验室更换电脑的诸多事情,本想提前准备一下的,想着他们会问一些框架方面的知识的,所以就在上午抽时间看了一下spring,中午一直待到一点才去吃饭,然后回宿舍睡一会,也没睡着,,,,,╮(╯▽╰)╭<br />于是乎两点半的时候跑到工大,交了简历,一个工大的学生组织说去那边等着,,就坐在那儿等到起,,一直等了大概半个小时,里面那位工大的才面试完,,等待的过程中遇到一个哈师大大二的学软件的(不知道哈师大怎么还有软件专业,难道要去给中学生教授软件编程?)和
2011-04-21 19:48:00
1001
原创 MySQL BLOB类型数据操作
<br />一、MySQL BLOB 类型介绍<br />MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。 <br /><br />MySQL的四种BLOB类型 <br /> 类型 大小(单位:字节) <br /> TinyBlob 最大 255B<br /> Blob 最大 65K <br /> Mediu
2011-04-20 13:10:00
919
原创 MySQL BLOB类型数据操作
<br />一、MySQL BLOB 类型介绍<br />MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。 <br /><br />MySQL的四种BLOB类型 <br /> 类型 大小(单位:字节) <br /> TinyBlob 最大 255B<br /> Blob 最大 65K <br /> Mediu
2011-04-20 13:10:00
18924
原创 Struts2的国际化支持
<br />每种框价都会有国际化的支持,struts2的国际化大致上分为页面的国际化,Action的国际化以及xml的国际化<br /> <br />首先在struts.properties文件中加入以下内容:<br />struts.custom.i18n.resources=messageResource<br />或在struts.xml中加入<br /><constant name="struts.custom.i18n.resources" value="messageResource"></co
2011-04-13 21:24:00
411
转载 Struts2中的值栈
<br />众所周知,Strut 2的Action类通过属性可以获得所有相关的值,如请求参数、Action配置参数、向其他Action传递属性值(通过chain结果)等等。要获得这些参数值,我们要做的唯一一件事就是在Action类中声明与参数同名的属性,在Struts 2调用Action类的Action方法(默认是execute方法)之前,就会为相应的Action属性赋值。 <br /><br /> 要完成这个功能,有很大程度上,Struts 2要依赖于ValueStack对象。这个对象贯穿整个Actio
2011-04-13 21:08:00
679
原创 编程的术与道之辩
<br /> <br />新版三国上映好长时间了,,但是一直由于种种原因没能得看,作为一个三国迷不可不谓之遗憾也,真好这学期事情挺少,于是乎在学校的ftp站点上下下来(学校的网速真是相当给力啊),总体来说拍的还不错,,陆毅扮演的诸葛孔明相比唐国强而言也算是有所突破吧。电视剧中印象最深的一段对白莫过于孔明与姜维的术道之辩,孔明曰:凡兵法战阵,变换万千,但是道才是根本,术乃表象也,,感觉此番言论及其真切也。<br />最近一年来一直在用业余的时间进行编程的学习,,感受颇多,,前段时间终于拜读完了Bruce Ec
2011-04-13 13:46:00
675
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人