自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java8 default方法

情景:当想要扩展某个接口的方法时,在接口中写好了方法,其实现类也必须跟着改变。因为接口有这个语法限制,所以要直接改变/扩展接口内的方法变得非常困难。我们在尝试强化Java 8 Collections API,让其支持lambda表达式的时候,就面临了这样的挑战。为了克服这个困难,Java 8中引入了一个新的概念,叫做default方法,也可以称为Defender方法,或者虚拟扩展方法(Virtua...

2018-01-03 22:36:34 343

转载 MapReduce中的shuffle过程

/** * author : 冶秀刚 * mail     : dennyy99@gmail.com */         Shuffle过程是MapReduce的核心,也被称为奇迹发生的地方。要想理解MapReduce, Shuffle是必须要了解的。我看过很多相关的资料,但每次看完都云里雾里的绕着,很难理清大致的逻辑,反而越搅越混。前段时间在做MapReduce job

2017-12-27 11:22:08 1154

转载 CGLIB动态代理和JDK动态代理-Spring AOP的底层实现原理

简述:AOP是目前Spring框架中的核心之一,在应用中具有非常重要的作用,也是Spring其他组件的基础。它是一种面向切面编程的思想。关于AOP的基础知识,相信多数童鞋都已经了如指掌,我们就略过这部分,来讲解下AOP的核心功能的底层实现机制:如何用动态代理来实现切面拦截。        AOP的拦截功能是由java中的动态代理来实现的。说白了,就是在目标类的基础上增加切面逻辑,生

2017-11-20 13:42:43 842

原创 java 并发编程

一:java 并发编程演变a)1.volatile 轻量级锁,锁字段2.synchronized  无锁状态->偏向锁(经常使用同一个同步对象)->轻量锁->重量锁b) 1.ThreadPoolExecutor 或者 用Concurrent包中的Executors 中的四种java自带线程池2.ForkJoinPoolpublic ThreadPoolExecutor(int c...

2017-11-20 01:04:34 202

原创 java NIO(non-blocking I/O) 非阻塞式io

一:NIO (non-blocking i/o) 非阻塞式I/O1.为所有的原始类型(boolean类型除外)提供缓存支持的数据容器,使用它可以提供非阻塞式的高伸缩性网络。2.通道与流的不同之处在于通道是双向的。3.因为它们是双向的,所以通道可以比流更好地反映底层操作系统的真实情况。特别是在 UNIX 模型中,底层操作系统通道是双向的。4.flip():Buffer有两种模式,

2017-11-19 23:28:34 1010

原创 Java 泛型

1.类型通配符Box 定义类型通配符上线,(定义了顶级父类)Box 定义类型通配符下线;(定义了底层子类)2.泛型只在编译阶段有效3.泛型作用:(1)类型安全。 通过知道使用泛型定义的变量的类型限制,编译器可以更有效地提高Java程序的类型安全。 (2)消除强制类型转换。 消除源代码中的许多强制类型转换。这使得代码更加可读

2017-11-19 23:20:40 164

原创 java 类集框架一些总结

1.Collection的接口和实现类: *  List: *  ArrayList  数组实现的索引列表 (在非同步情况下取代Vector) *  LinkedList 在任何位置可以实现高效的插入和删除操作的有序列表 * Vector 可动态改变容量的数组 *  Stack  堆栈 *  *  Set: *  HashSet    无序的无重复的集 *  TreeSet 有序的无重复的集 * ...

2017-11-19 23:04:10 223

原创 Linux命令与shell脚本

一:Linux命令netstat -an | awk "/3306/ {print $0}"  #找出网络中端口号为3306的行netstat -an | grep 3306| :管道,将前者命令的输出当左后者的输入> 重定向,覆盖文件内容>> 追加 ,追加在文件内容的末尾awk awk命令,用于将匹配出的内容做出返回grep 匹配,正则表达式

2017-11-19 22:56:00 196

原创 Spring复习

1Spring 对于Bean的管理:不用让程序员去new出对象了,通过spring的xml配置或者注解,直接在你使用某个对象的时候去自动注入依赖或者自动装配依赖;基于xml的方式则在代码层次上考虑construct或setter注入方式,并且能够实现项目代码的外部部署;而基于注解的方式则不用写多余代码以及大量的xml文件配置了,但不能够在代码外部修改配置。2. Bean Scope :

2017-11-19 22:49:00 250

原创 SQL 摘要

sql : 一: LIKE 通配符1.% :任意字符任意个数2._ :单个字符3.[]:匹配指定位置的一个字符  eg:[JM]%---->代表匹配字符串首字母为J或M的任意字符串二: 字段拼接查询 + (相当于字符串的拼接)三:AS 别名(alias)四:RTRIM()整理函数,去除空白AVG(),COUNT(),MAX(),MIN(),SUM

2017-11-19 22:42:16 508

转载 java中的快速失败(fail-fast)与安全失败(fail-safe)

原文地址:http://javahungry.blogspot.com/2014/04/fail-fast-iterator-vs-fail-safe-iterator-difference-with-example-in-java.html在我们详细讨论这两种机制的区别之前,首先得先了解并发修改。1.什么是同步修改?当一个或多个线程正在遍历一个集合Collection,此

2017-11-19 12:20:40 378

转载 java native方法及JNI实例

1.参考文献:http://blog.csdn.net/youjianbo_han_87/article/details/2586375http://blog.csdn.net/yangjiali014/article/details/1633017http://blog.chinaunix.net/space.php?uid=7437948&do=blog&id=20

2017-11-03 14:28:01 273

原创 解决空指针的正确姿势

一:参考使用optional的正确姿势一篇二:map 可以无线级联三:orElse 有则返回,无则取默认值String stationName = Optional.ofNullable(t.getRadioStation()) .map(m -> m.getStation()) .map(m -> m.getName()) .orElse("-");

2017-11-02 16:37:54 345

转载 对于动态规划的理解

今天在网上看到一个讲动态规划的文章,是以01背包为例的,这文章和书上的讲解非常不一样,令我眼前一亮,于是转载一下下~~~(说明一下,本人非常痛恨教材公式定理漫天飞,实际的讲解却讲得非常枯涩难懂,这种中国式的教育已经延绵了几千年了,现在中国的教材还是这个样子,讲清楚些明白些就那么难么?高中有个老师讲的一句话一直觉得很有道理:“教得会天才不是真本事,能把博士生的东西讲到小学生都会用那才是真水平。”

2017-11-02 16:36:14 750 1

转载 使用java 8 Optional 的正确姿势

我们知道 Java 8 增加了一些很有用的 API, 其中一个就是 Optional. 如果对它不稍假探索, 只是轻描淡写的认为它可以优雅的解决 NullPointException 的问题, 于是代码就开始这么写了OptionalUser> user = ...... if (user.isPresent()) { return user.getOrders();} else

2017-08-31 17:25:23 356

原创 无线电项目 js总结

一:取得dom元素的自定义属性值(用于传值)       1.$("element").attr()       2.$("element").prop()

2017-08-27 13:06:20 245

转载 Javascript模块化编程(三):require.js的用法

作者: 阮一峰日期: 2012年11月 7日这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。我采用的是一个非常流行的库require.js。一、为什么要用require.js?最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多

2017-07-15 10:56:04 200

转载 Javascript模块化编程(一):模块的写法

作者: 阮一峰日期: 2012年10月26日随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂。网页越来越像桌面程序,需要一个团队分工协作、进度管理、单元测试等等......开发者不得不使用软件工程的方法,管理网页的业务逻辑。Javascript模块化编程,已经成为一个迫切的需求。理想情况下,开发者只需要实现核心的业务逻辑,

2017-07-15 10:52:02 196

原创 为什么Java byte类型的取值范围为-128~127

一:原码、反码和补码[原码]就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。[反码]表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。[补码]表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。二:Java使 用 补 码 来 表 示 二 进 制 数

2017-07-01 10:10:20 412

转载 Mysql ERROR 1698 (28000) 解决

一,问题描述:新装了mysql-server-5.7,登录为这一问题,普通用户不能进mysql,只有root用户才能进,并且不需要任何密码。~$ mysql -u root -pEnter password: ERROR 1698 (28000): Access denied for user 'root'@'localhost'  二,解决步骤:停止mysql服务

2017-06-29 20:53:27 18710 6

转载 数字摘要和Hash函数(哈希函数)

数字摘要和Hash函数(哈希函数)1、数字摘要数字摘要是将任意长度的消息变成固定长度的短消息,它类似于一个自变量是消息的函数,也就是Hash函数。数字摘要就是采用单项Hash函数将需要加密的明文“摘要”成一串固定长度(128位)的密文这一串密文又称为数字指纹,它有固定的长度,而且不同的明文摘要成密文,其结果总是不同的,而同样的明文其摘要必定一致一般来说,非对称加密是用来处理

2017-06-20 10:51:35 8409

转载 什么是数字签名

什么是数字签名      数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。       数字签名,就是只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。       数字签名

2017-06-20 10:47:50 1223

转载 图解公钥与私钥的使用

图解公钥与私钥的使用1、鲍勃有两把钥匙,一把是公钥,另一把是私钥。2、鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。3、苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。4、鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

2017-06-20 10:37:52 6653 1

原创 sql 添加级联删除和级联更新

添加级联删除 :mysql> alter table t_orderitem add constraint `FK...` foreign key (oid) references t_orders (oid) on delete cascade;添加级联更新 :mysql> alter table t_orderitem add constraint `FK...` fo

2017-06-16 19:12:23 13586 3

转载 禁用笔记本自带键盘

用管理员身份运行cmd:禁用笔记本键盘 sc config i8042prt start= disabled启用笔记本键盘 sc config i8042prt start= auto

2017-06-02 16:13:25 13966 6

原创 java 学习笔记6

//重载 (overload):方法的重载,方法名字相同时,根据参数的个数,类型不同,顺序不同,加载不同的方法。//this:正在调用该方法的对象,正在初始化该方法的对象。//super:直接父类对象的引用。通过super来访问父类中被子类覆盖的方法和属性。//java中只有单继承,c++是多继承;java中的多继承,可以通过接口来实现//重写(override):方法名称,参数列表

2017-04-12 21:28:39 226

原创 Java 学习笔记5

checked exception//编译时异常unchecked exception//运行时异常异常转型:try{ }catch(Exception e){ throws new RuntimeException(e);//运行时异常,unchecked exception}

2017-04-02 22:51:49 185

原创 java 学习笔记4

一,Date()与SimpleDateFormat()Date d = new Date();//输出当前系统时间SimpleDateFormat sdf = new SimpleDateFormat(yyyy-MM-dd HH:mm:ss)//时间格式String date = sdf.format(d);//格式化时间

2017-03-28 16:58:09 206

原创 java 学习笔记3

一,基本数据类型与字符串之间的转换在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。其中,基本类型转换为字符串有三种方法:1. 使用包装类的 toString() 方法2. 使用String类的 valueOf() 方法3. 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串int c = 10;String str = Integer

2017-03-28 16:47:30 241

原创 xml文件的解析与jvm内存调整

一,xml文件的转换//将xml文件转换为map;需要dom4j.jarpublic static Map XMLToMap(HttpServletRequest request){ Map map = new HashMap; SAXReader reader = new SAXReader(); //取得输入流并用SAXReader读入到Document

2017-03-24 17:16:02 575

原创 java 学习笔记2

一,反射加载类 1.class.forname();2.new Object().getclass();3.Object.class;并解剖出类的各个部分getField()  获取成员getConstruction()获取构造函数getMethod()获取方法private只能被内部访问,但是反射能够改变其权限。二,内省(i

2017-03-21 10:24:43 182

原创 反射

一,反射加载类 1.class.forname();2.new Object().getclass();3.Object.class;并解剖出类的各个部分getField()  获取成员getConstruction()获取构造函数getMethod()获取方法private只能被内部访问,但是反射能够改变其权限。

2017-03-21 09:52:59 186

原创 java 学习笔记1

一,eclipse快捷键ctrl+shift+l 查看快捷键ctrl+shift+X,Y 变换大小写ctrl+shift+f 格式化代码ctrl+alt+上,下 复制到上,下行alt+上,下 移动到上,下行alt+/ 注释

2017-03-20 22:55:16 273

原创 动态绑定与静态绑定

1.方法绑定:一个方法被调用时该方法被关联到该方法体的过程。2.静态绑定:在程序执行前方法已经被绑定(也就是说在编译过程中就已经知道这个方法到底是哪个类中的方法),此时由编译器或其它连接程序实现。java当中的方法只有final,static,private和构造方法是前期绑定3.动态绑定:后期绑定:在运行时根据具体对象的类型进行绑定。若一种语言实现了后期绑定,同时必须提供一些机制,可

2017-03-17 22:56:49 457

原创 free()函数具体做了什么

这几天写的贪吃蛇,先是malloc了一个p指针,然后p与snake.tail指针相等了,即p=snake.tail。结果free(p)过后,snake.tail里面的内容也被释放了。该指针变为迷途指针。总结:1、free只是释放了malloc所申请的内存,并不改变指针的值;2、由于指针所指向的内存已经被释放,所以其它代码有机会改写其中的内容,相当于该指针从此指向了自己无法控制的...

2017-03-13 17:20:26 3008 2

转载 Cannot open precompiled header file: 'Debug/****.pch': No such file or directory

环境:VC执行:编译程序问题描述:Cannot open precompiled header file: 'Debug/****.pch': No such file or directory我的解决方案可以使用右键点击项目工程中的该cpp文件,选择setting,在c/c++栏,选择PreCompiled headers,然后设置第一选项,选择不使用预编译头,解决这个问题。  

2017-03-13 15:31:18 1164

转载 fork与clone的区别

fork:在github页面,点击fork按钮。将别人的仓库复制一份到自己的仓库。clone:将github中的仓库克隆到自己本地电脑中问题1:pull request的作用比如在仓库的主人(A)没有把我们添加为项目合作者的前提下,我们将A的某个仓库名为“B”的仓库clone到自己的电脑中,在自己的电脑进行修改,但是我们会发现我们没办法通过push将代码贡献到B中。所以

2017-03-08 18:08:19 5322 1

转载 break和continue在switch中,在循环中以及在循环中的switch的区别

一、先看MSDN关于break和continue语句的帮助说明1、break 语句用于终止最近的封闭循环或它所在的 switch 语句。控制传递给终止语句后面的语句(如果有的话)。2、continue 语句将控制权传递给它所在的封闭迭代语句的下一次迭代。二、我对break和continue语句的解释通过对MSDN帮助的理解,我们可以得出以下结论:1、break 语句在循环(fo

2017-03-05 09:21:36 2827

转载 怎样理解阻塞非阻塞与同步异步的区别?

作者:严肃链接:https://www.zhihu.com/question/19732473/answer/20851256来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。阻塞”与"非阻塞"与"同步"与“异步"不能简单的从字面理解,提供一个从分布式系统角度的回答。1.同步与异步同步和异步关注的是消息通信机制 (synchronou

2017-03-04 20:29:01 361

转载 引用与指针的区别

指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法。1.指针和引用的定义和性质区别:(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:int a=1;int *p=&a;int a=1;int &b=a;上面定义了一

2017-03-03 19:22:04 188

空空如也

空空如也

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

TA关注的人

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