自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 eclispe 与 gitlab关联

http://www.codeweblog.com/gitlab-eclipse-ssh%E8%BF%9E%E6%8E%A5/

2018-03-31 16:55:06 255

原创 java 实现多线程的四种方式

1.继承Thread类创建线程2.实现Runnable创建线程3.实现Callable接口通过FutureTask包装器来创建线程4.使用ExecutorService、Callable、Future实现有返回结果的线程ExecutorService、Callable、Future三个接口实际上都是属于Executor框架。返回结果的线程是在JDK1.5中引入的新特征,有了这种特征就不需要再为了得...

2018-03-30 14:38:53 137

原创 spring ioc和aop原理理解

ioc的意思是控制反转,表示创建对象并不是new出来的,而是通过spring配置创建的,实现原理是xml配置文件+SAX解析+工厂模式。aop的意思是面向切面编程,表示将封装好的对象剖开,找出对多个对象产生影响的公共行为,并封装成可重用的模块,这种被成为“切面”,切面将那些与功能无关的逻辑封装起来,减少了系统的重复代码,降低耦合度。...

2018-03-29 22:40:27 350

转载 juc

1. JUC 简介在 Java 5.0 提供了 java.util.concurrent(简称JUC)包,在此包中增加了在并发编程中很常用的工具类,用于定义类似于线程的自定义子系统,包括线程池,异步 IO 和轻量级任务框架;还提供了设计用于多线程上下文中的 Collection 实现等;2. volatile 关键字volatile 关键字: 当多个线程进行操作共享数据时,可以保证内存中的数据是可...

2018-03-28 23:59:59 1156

原创 动态规划

个人见解:1.动态规划实现了把问题拆分成多个子问题,然后求解,子问题有解后,问题自然迎刃而解;动态规划算法与分治算法类似,不同的是动态规划分解成的小问题并不是互相独立的,即下一阶段的求解往往依赖于上一阶段的解,从而一步步求得原问题的解。...

2018-03-28 15:00:34 118

转载 eclipse 智能提示

1、java智能提示(1). 打开Eclipse,选择打开" Window - Preferences"。(2). 在目录树上选择"Java-Editor-Content Assist",在右侧的"Auto-Activation"找到"Auto Activation triggers for java"选项。默认触发代码提示的就是"."这个符号。(3). 在"Auto Activation tri.

2018-03-28 11:24:08 113

原创 js 跨域请求

1.安装flash,通过与flash交互,实现跨域,但此方法太麻烦,已经很少使用2.二是通过在同源域名下架设一个代理服务器来转发,JavaScript负责把请求发送到代理服务器:'/proxy?url=http://www.sina.com.cn'代理服务器再把结果返回,这样就遵守了浏览器的同源策略。这种方式麻烦之处在于需要服务器端额外做开发。3.JSONP方式,只能使用GET请求,并且要求返回...

2018-03-28 09:35:27 140

原创 ajax原生请求

实现ajax依靠xmlHttpRequest对象var request;if (window.XMLHttpRequest) { request = new XMLHttpRequest();} else { request = new ActiveXObject('Microsoft.XMLHTTP');}request.onreadystatechange = funct...

2018-03-28 09:29:34 133

原创 html5 File api 上传案例

var fileInput = document.getElementById('test-image-file'), info = document.getElementById('test-file-info'), preview = document.getElementById('test-image-preview');// 监听change事件:fileIn...

2018-03-28 01:59:04 176

原创 DOM操作

插入DOM把<p id="js">JavaScript</p>添加到<div id="list">的最后一项:var js = document.getElementById('js'), list = document.getElementById('list');list.appendChild(js);var list = doc...

2018-03-28 01:48:47 166

原创 箭头函数

ES6标准新增了新函数:Arrow Function 箭头函数。定义:x=>x*x;相当于function(x){    return x*x;}左边是参数,右边是函数内容。// 两个参数:(x, y) => x * x + y * y// 无参数:() => 3.14// 可变参数:(x, y, ...rest) => { var i, sum = ...

2018-03-28 01:45:37 93

原创 js 高级函数

1.map()函数2.reduce函数3.filter函数4.sort函数例子:function pow(x) { return x * x;}var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];var results = arr.map(pow); // [1, 4, 9, 16, 25, 36, 49, 64, 81]console.log(results);...

2018-03-28 00:56:15 534

原创 导入导出封装

 //导出表头样式    public static WritableCellFormat HeadCss(HttpServletResponse response,HttpServletRequest request) throws Exception{    //表头样式 WritableFont wf_head = new WritableFont(WritableFont.create...

2018-03-27 11:49:00 302

原创 函数

1.js允许传入任意个参数而不影响函数的调用,因此传入的参数比定义的参数多没有问题。2.js有一个关键字arguments,它只在函数内部起作用,并且永远指向当前函数的调用者传入的所有参数,arguments类似Array,但它不是一个Array。function foo(x) {    console.log('x = ' + x); // 10    for (var i=0; i<ar...

2018-03-26 00:52:13 84

原创 iterable类型的遍历方式

遍历Array可以采用下标循环,遍历Map和Set就无法使用下标。为了统一集合类型,ES6标准引入了新的iterable类型,Array、Map和Set都属于iterable类型。具有iterable类型的集合可以通过新的for ... of循环来遍历。但浏览器必须是新版本才支持。举例:用for ... of循环遍历集合,用法如下:var a = ['A', 'B', 'C'];var s = ...

2018-03-26 00:29:27 4273

原创 ES6规范模版字符串

var name = '小明';var age = 20;var message = `你好, ${name}, 你今年${age}岁了!`;alert(message);当很多变量需要连接的时候,可以使用模板字符串代替+号连接,注意单引号是反向。...

2018-03-25 23:23:30 142

原创 js 比较运算符

js中有两种相等运算符;第一种是==比较,它会自动转换数据类型再比较,很多时候,会得到非常诡异的结果;第二种是===比较,它不会自动转换数据类型,如果数据类型不一致,返回false,如果一致,再比较。false == 0; // truefalse === 0; // false由于这个缺陷,尽量使用===比较是否相等。有一个例外是NaN,这个特殊的Number类型与其他所有类型都不相等,包括它...

2018-03-25 23:09:00 285

原创 栈和队列

1.栈是一种只能在一端进行操作的线性表,按照先进后出的原则存储数据。栈具有记忆作用,对栈的操作中,不需要改变栈底指针。2.队列只允许在一端进行插入操作,在另一端进行删除操作,是先进先出的线性表。队列分为:  ①、单向队列(Queue):只能在一端插入数据,另一端删除数据。  ②、双向队列(Deque):每一端都可以进行插入数据和删除数据操作。...

2018-03-21 00:43:35 152

原创 冒泡、选择、插入排序算法

1.冒泡排序:  ①、比较相邻的元素。如果第一个比第二个大,就交换他们两个。  ②、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数(也就是第一波冒泡完成)。  ③、针对所有的元素重复以上的步骤,除了最后一个。  ④、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。2.选择排序:选择排序是每一次从待排序的数据元素中选出最小的一个元...

2018-03-21 00:06:01 141

原创 数据结构的分类

1.常用的数据结构:数组、有序数组、栈、队列、链表、二叉树、红黑树、2-3-4树、哈希表、堆、图。

2018-03-20 23:45:47 263

原创 数据结构的基本功能

1.数据结构是计算机存储和组织数据的方式,相互之间存在关系的集合。数据结构与某种算法和索引有关。2.基本功能:删除、查找、添加、遍历。

2018-03-20 23:38:22 678

原创 java并发Lock接口

使用lock()获取锁,unlock()释放锁。import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;class PrintDemo {    private final Lock queueLock = new ReentrantLock();    public void p...

2018-03-16 14:36:40 125

原创 socket双向通信

客户端import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.net.InetAddress;import java.net...

2018-03-15 23:59:31 975

原创 遍历集合方法总结

遍历List方法一:普通for循环1234for(int i=0;i<list.size();i++){//list为集合的对象名    String temp = (String)list.get(i);    System.out.println(temp);}遍历List方法二:增强for循环(使用泛型!)123for (String temp : list) {System.out....

2018-03-15 22:25:12 162

原创 二叉树和红黑二叉树

二叉树是树形结构的一个类型,由一个根节点和左子树、右子树组成。排序二叉树特性:左子树上的值均小于根节点的值;右子树的值均大于根节点的值。(相当于链表)平衡二叉树        任何节点的两个子树的最大高度差为1,被称为高度平衡树。        节点的平衡因子是它的左子树的高度减于右子树的高度(有时相反),平衡因子是1,0,-1的是被认为平衡的。...

2018-03-15 22:24:01 851

原创 容器(map接口)

map的实现类主要包括HashMap、HashTable、TreeMap、Properties。HashMap采用哈希算法实现,要求键不能重复,如果发生重复,新的键会替代旧的键。 HashMap底层实现采用了哈希表,这是一种非常重要的数据结构。对于我们以后理解很多技术都非常有帮助(比如:redis数据库的核心技术和HashMap一样),因此,非常有必要让大家理解。      数据结构中由数组和链表...

2018-03-15 21:56:16 153

原创 线程状态和终止线程

stop()和detroy()方法已被jdk启用,不推荐使用终止方法:通常的做法是提供一个boolean型的终止变量,当这个变量置为false,则终止线程的运行。【示例11-3】终止线程的典型方法(重要)1234567891011121314151617181920212223242526272829public class TestThreadCiycle implements Runnable...

2018-03-14 17:58:53 278

原创 线程、进程、程序区别

线程和进程最根本的区别在于线程是调度和执行的单位,而进程是资源分配的单位;线程是进程的一部分,所以线程又被成为轻量级进程;一个没有线程的进程看做是单线程的;线程只能共享它所属进程的资源。程序是静态的实体;而进程是动态的实体,有自己的生命周期;进程是程序的一部分,程序运行时产生进程。...

2018-03-14 17:35:01 132

原创 垃圾回收原理及算法

垃圾回收过程:垃圾回收算法一般要做两件事情:1.发现无用的对象,2.回收无用对象占用的空间。垃圾回收机制保证可以将“无用的对象”进行回收。无用的对象指的就是没有任何变量引用该对象。Java的垃圾回收器通过相关算法发现无用对象,并进行清除和整理。垃圾回收相关算法:1.引用计数法:堆中每个对象都有一个引用计数。被引用一次,计数加1. 被引用变量值变为null,则计数减1,直到计数为0,则表示变...

2018-03-14 17:03:49 287

原创 面向对象(二、值传递)

函数调用中传递参数时,遵循原则:   基本类型传递的是参数本身的值,引用类型传递的是对对象的引用,不是对象本身。

2018-03-14 14:54:18 124

原创 面向对象(一、思想)

面向对象设计思想:从现实客观事物出发构造软件系统,并在系统构造中尽量使用人类思维方式,更加强调人类在日常思维逻辑中的思想方法和原则。对象是静态属性和动态属性的封装体;类是同一类型的事物的模板。...

2018-03-14 14:32:41 107

空空如也

空空如也

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

TA关注的人

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