- 博客(85)
- 收藏
- 关注
转载 java 插入排序
概念: 通常人们整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置。在计算机的实现中,为了要给插入的元素腾出空间,我们需要将其余所有元素在插入之前都向右移动一位。与选择排序一样,当前索引左边的所有元素都是有序的,但他们的最终位置还不确定,为了给更小的元素腾出空间,它们可能会被移动。但是当索引达到数组的右端时,数组排序就完成了。和选择排序不同的是,插入排序所需...
2018-06-06 11:40:00
171
转载 java 选择排序
基本思想:首先,找到数组中最小的那个元素,其次将它和数组的第一个元素交换位置(如果第一个元素就是最小元素那么它就和自己交换)。再次,在剩下的元素中找到最小元素,将它与数组的第二个元素交换位置。如此往复,直到将整个数组排序。package com.test;import java.util.Arrays;public class SelectSort { ...
2018-06-06 11:25:00
167
转载 java 二分法查找
package com.test;import java.util.Arrays;public class BinaraySearch { public static int search(int key, int[] a) { int lo = 0; int hi = a.length - 1; ...
2018-06-04 17:30:00
177
转载 java Smaphore 控制并发线程数
概念: Semaphore(信号量)是用来控制同事访问特定资源的线程数量,它通过协调各个线程,已保证合理的使用公共资源。应用场景: Semaphore 可以用于做流量控制,特别是共用资源有限的应用场景,比如数据库连接。假如有一个需求,要读取几万个文件的数据,因为都是IO密集型任务,我们可以启动几十个线程并发的读取,但是如果读到内存后,还需要存储到数据库中。而数据库的连接数...
2018-06-01 18:04:00
233
转载 java CyclicBarrier同步屏障
CyclicBarrier的字面意思是可循环使用的屏障,它的主要作用是,让一组线程到达一个屏障时被阻塞,知道最后一个线程到达屏障时,屏障才会打开,所有被屏障拦截的线程才会继续运行。1、简介: CyclicBarrier默认的构造方法是CyclicBarrier(int parties),其中参数标识屏障拦截的线程数量,每个线程调用await方法告诉CyclicBarrier我已...
2018-06-01 17:56:00
92
转载 java CountDownLatch 等待多线程完成
CountDownLatch允许一个或多个线程等待其他线程完成操作。package com.test;import java.util.concurrent.CountDownLatch;public class CountDownLatchTest { static CountDownLatch c = new CountDownLatch...
2018-06-01 17:41:00
146
转载 java中的13个原子操作类
1、原子更新基本类型类:AtomicBoolean:原子更新布尔类型。AtomicInteger:原子更新整型。AtomicLong: 原子更新长整型。 以上3个类提供的方法几乎一模一样,所以仅以AtomicInteger为例进行详解。int addAndGet(int delta):以原子方式将输入的数值与实例中的值相加,并返回结果。boolean...
2018-06-01 17:32:00
129
转载 java fork/join框架
1、概念:Fork/Join框架是一个把大任务分割成若干个小人物,最终汇总每个小任务结果后得到大任务结果的框架。2、Fork/Join 框架的设计: 步骤1:分隔任务。 步骤2:执行任务合并结果。 Fork/Join 使用两个类来完成以上两件事情。 1.ForkJoinTask:我要使用ForkJoin框架,必须首先创建一个ForkJoin任务,它提供...
2018-06-01 16:55:00
80
转载 java 中的阻塞队列
1、什么是阻塞队列:支持阻塞的插入方法,意思是当队列满时,队列会阻塞插入元素的线程,知道队列不满。支持阻塞的移除方法:意思是在队列为空时,获取元素的线程会等待队列变为非空。 插入和移除操作的4种处理方式:方法/处理方式抛出异常返回特殊值一直阻塞超时退出插入方法add(e)offer(e)put(e)...
2018-06-01 16:06:00
83
转载 java Executor 线程池
Executor提供了4种线程池:1、FixedThreadPool:创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。2、SingleThreadExecutor : 单个线程的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。3、newCachedThreadPool:可缓存线程池,如果线程池长度超...
2018-06-01 15:32:00
84
转载 java ReentranLock锁
1、效果和synchronized一样,都可以同步执行,lock方法获得锁,unlock方法释放锁使用示例:package com.test;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class MyServic...
2018-06-01 11:29:00
138
转载 java ThreadLocal的使用
类ThreadLocal主要解决的就是每个线程绑定自己的值.package com.test;public class TestThreadLocal { public static ThreadLocal<String> t1 = new ThreadLocal<>(); public void set...
2018-06-01 10:20:00
90
转载 java join 方法的使用
在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束。这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据中的值,就要用到join()方法了,方法join()的作用是等待线程对象被销毁。代码示例:package com.test;public class TestJoi...
2018-05-31 19:17:00
198
转载 java wait(),notify(),notifyAll()
wait()的作用是使当前执行代码的线程进行等待,此方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所带的代码处停止执行,直到接到通知或被中断位置。在调用wait()方法前线程必须获得该对象的对象级别锁,即只能在同步方法或同步块中调用wait()方法。notify()也要在同步方法或同步块中调用,即在调用前,线程也必须获得该对象的对象级别锁...
2018-05-31 18:57:00
102
转载 java volatile关键字
volatile关键字的主要作用是使变量在多个线程间可见。关键字volatile的作用是强制从公共堆栈中取得变量的值,而不是从线程私有数据栈中取得变量的值。1、关键字volatile与死循环:package com.test;public class PringString { private boolean isContinuePrint = tru...
2018-05-31 18:19:00
88
转载 java 多线程死锁
死锁案例:package com.test;public class DealThread implements Runnable { public String username; public Object lock1 = new Object(); public Object lock2 = new Object(); ...
2018-05-31 17:43:00
104
转载 Java Synchronized
1、synchronized 同步方法: 是对当前对象加锁。package com.test;public class TestObject { synchronized public void methodA() { try { System.out.println("begin methodA t...
2018-05-31 16:57:00
81
转载 Java 多线程概念
1、为什么要使用多线程: 更多的处理器核心。更快的响应时间。更好的变成模型。2、线程的优先级: 现代操作系统基本采用时分的形式调度运行的线程,操作系统会分出一个个的时间片,线程会分配到若干时间片,当线程的时间片用完了就会发生线程调度,并等待着下次分配。线程分配到的时间片多少也就决定了线程使用处理器资源的多少,而线程优先级就是决定线程需要多或者少分配一些处...
2018-05-31 16:22:00
94
转载 java jmap
jmap : 命令用于生成堆转储快照。它还可以查询finalize执行队列、Java堆和永久代的详细信息,如空间使用率、当前用的是哪种收集器等。命令格式: jmap [option] vmidoption选项:选项作用-dump生成Java堆转储快照。格式为:-dump:[live, ] format=b,file=<fi...
2018-05-30 20:30:00
166
转载 java jstat
jstat 虚拟机统计信息监视工具: jstat (JVM Statistics Monitoring Tool) 适用于监视虚拟机各种运行状态信息的命令行工具。命令格式: jstat [ option vmid [ interval [s | ms] [ count ] ] ] 如果是本地虚拟机进程VMID 与 LVMID 是一致的, 如果是远程虚拟机进程,那VM...
2018-05-30 19:57:00
172
转载 java jps
jps:虚拟机进程状况工具:命令格式:jps [options] [hostid]hostid 为RMI注册表中注册的主机名。执行样例:options 参数:选项作用-q只输出LVMID,省略主类的名称-m输出虚拟机进程启动时传递给主类main()函数的参数-l输出主类的全名,如果进程执行...
2018-05-30 19:43:00
116
转载 JVM-GC日志分析
程序运行时配置如下参数:-Xms20M -Xmx20M -Xmn10M -verbose:gc -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:+PrintGCTimeStamps最终,程序输出:0.070: [GC (Allocation Failure) [PSYoungGen: 7127K->616K(9216K...
2018-05-30 19:13:00
104
转载 JVM垃圾回收
GC针对什么对象: 当一个对象通过一系列根对象。(比如静态属性引用的常量)都不可达时就会被回收。--- 当一个对象所有引用都为null,如果对象A有一个指向对象B的引用,对象B也有一个指向对象A的引用,除此之外,它们没有其他引用,那么对象A和对象B都、需要被回收。堆内存是如何划分的: java中的对象都在堆上创建。为了GC,堆内存分为三个部分。新生代,年老代和永久代。...
2018-05-30 14:34:00
83
转载 JVM垃圾回收--年轻代、年老点和持久代
年轻代: 一般情况下,所有新生成的对象首先都是放在年轻代的。年轻代的目的就是尽可能快速的收集掉那些生命周期短的对象。年轻代分三个区。一个Eden区,两个 Survivor区(分别叫from和to)Eden区与一个Survivor区的空间比例默认为8:1。 对象在Eden区中分配,当Eden区没有足够空间进行分配时,虚拟机将发起一次Minor GC。如果对象仍然存活,并且能被S...
2018-05-30 12:15:00
233
转载 auth_basic 认证
shell > yum -y install httpd-tools # 安装 htpasswd 工具shell > cd /usr/local/nginx-1.10.2/confshell > htpasswd -c pass.db wang # 创建认证用户 wang 并输入密码,添加用户时输入 htpasswd pass.db userna...
2018-04-26 14:45:00
881
转载 Linux 增加虚拟内存
1、 用df -h 命令找一个比较大的磁盘空间2、建立swap文件 大小为2Gdd if=/dev/zero of=swapfile bs=1024000 count=20003、启用虚拟内存 1.将swap文件设置为swap分区文件1 mkswap swapfile 2 #(由于此文件也会占用磁盘空间 , 最好找一个比较大的磁盘存放)...
2017-11-02 09:48:00
159
转载 vue http请求 vue-resource使用方法
1、安装vue-resource扩展: npm installvue-resource2、在main.js中引入import http from 'vue-resource'3、使用方法// 基于全局Vue对象使用http Vue.http.get('/someUrl', [options]).then(successCallback, errorC...
2017-08-04 14:29:00
212
转载 vuex 使用方法
1、安装vuex扩展 : npm install vuex2、在componets目录下新建 store.js 文件import Vue from 'vue' import Vuex from 'vuex'Vue.use(Vuex)// 定义初始值const state = { num: 0}// 获取变量值const ge...
2017-08-04 12:19:00
93
转载 vue 路由
1、在 src/router/index.js 里定义新的路由数据import Vue from 'vue'import Router from 'vue-router'import Hello from '@/components/Hello'Vue.use(Router)export default new Router({ routes: [...
2017-08-03 19:02:00
62
转载 vue 引用其他组件
1、在components 目录下新建Test.vue 文件<template> <div class="test"> <h1>{{ msg }}</h1> <router-link to="/login">跳转到详情页</router-link> </div>...
2017-08-03 18:02:00
145
转载 Vue 创建项目
1、需要nodejs 环境支持。2、安装 cnpm 替换npm镜像为国内镜像npm install -g cnpm --registry=https://registry.npm.taobao.org3、全局安装vuecnpm install -g vue-cli# 安装完成之后 使用 vue -V 命令查看版本号验证是否安装成功 ...
2017-08-03 17:48:00
60
转载 nginx 日志 log_format 及字段说明
1、log_format 普通格式log_format main '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$ht...
2017-08-02 21:19:00
1372
转载 msyql 死锁
1、使用 show processlist; 查询当前进程; 找到Command 状态是query 并且Time 时间很长的id kill掉即可2、select * from information_schema.innodb_trx;MySQL 5.5版本以上才可以用此方法,5.5版本以下会没有这个表;[Err] 1109 - Unknown table 'innodb_t...
2017-07-30 23:02:00
207
转载 yii2 操作数据库
1、查询User::find()->all(); 此方法返回所有数据;User::findOne($id); 此方法返回 主键 id=1 的一条数据(举个例子); User::find()->where(['name' => '小伙儿'])->one(); 此方法返回 ['name' => '小伙儿'] 的一条数据;...
2017-07-14 11:31:00
96
转载 yii2 加载静态资源
1、在 assets/AppAsset 里定义方法<?php/** * @link http://www.yiiframework.com/ * @copyright Copyright (c) 2008 Yii Software LLC * @license http://www.yiiframework.com/license/ */name...
2017-07-14 11:23:00
699
转载 Yii2 之 UrlManager 实践 (一)
1. enablePrettyUrl yii2默认不支持类似 http://<domain>/site/error 的url格式,需要在config.php中启用enablePrettyUrl 属性[ //others 'components' => [ 'urlManager' => [ 'enablePrettyU...
2017-07-13 11:52:00
244
转载 Wordpress 之 Rewrite Rules
-----------------------------------------------------------------场景描述: 自定义wp主题中,添加了个关于页面(about.php) 。目的: 顺利访问 http://<domain>/about.php------------------------------------...
2017-07-13 11:31:00
340
转载 yii2 使用gii生成代码文件
访问地址:http://localhost/yii2-test/web/index.php?r=gii如果你通过本机以外的机器访问 Gii,请求会被出于安全原因拒绝。 在web.php修改gii配置:1 $config['modules']['gii'] = [2 'class' => 'yii\gii\Module',3 ...
2017-07-12 17:22:00
145
转载 yii2 安装
需要Composer , 安装教程点此处1、安装基础版:#安装最新的yii插件 composer global require "fxp/composer-asset-plugin:^1.3.1"composer create-project yiisoft/yii2-app-basic /www/yii2-test2、安装高级版:#安装最新的yii插件 c...
2017-07-12 16:50:00
81
转载 Nodejs 定时任务
安装扩展:node-schedulenpm install node-schedule1、linux Crontab风格1 var schedule = require('node-schedule');2 3 function scheduleCron(){4 schedule.scheduleJob('1 * * * * *', funct...
2017-07-12 14:48:00
139
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人