5 孙海峰VIP

尚未进行身份认证

暂无相关简介

等级
TA的排名 3w+

Leetcode No.94 二叉树的中序遍历(循环法,含先序、中序、后序通用解解题技巧)

二叉树的中序遍历题目描述题目分析先序遍历的场景实现代码/***Definitionforabinarytreenode.*publicclassTreeNode{*intval;*TreeNodeleft;*TreeNoderight;*TreeNode(intx){val=x;}...

2019-07-25 00:47:00

【阿里面试题】JAVA多线程统计文件夹大小

阿里面试题,使用多线程统计文件夹大小

2019-05-20 22:47:47

如何正确的做技术选型

概述技术选型是项目的根基,如果选择了不适合自己业务场景的技术。初期由于业务复杂程度和业务量都比较小,所以可能感受不是十分明显,但是到了后期这将会是一个噩梦。会导致系统问题频发,极不稳定,甚至导致项目迭代举步维艰,甚至有的团队会停止新功能的开发,专门修复bug。严重时可能造成重大的经济损失。选型是怎样失败的如下所述的几种场景是典型的“凑热闹”解决问题的方式。它很容易导致错误决策,无论是糟糕的架...

2018-10-07 21:26:30

Sharding-JDBC 3.x 原理篇之基本介绍(二)附1.x~3.x版本文档

前言上一篇描述了Sharding-JDBC的历史演进过程和设计理念,本篇将具体描述Sharding-Sphere的具体功能和个版本特性。后续将对常用核心功能逐一进行分析和探讨。版本功能1.x功能列表分库分表SQL解析功能完善,支持聚合,分组,排序,LIMIT,TOP等查询,并且支持级联表以及笛卡尔积的表查询支持内、外连接查询分片策略灵活,可支持=,BETWEEN,IN等多维度分片,也...

2018-10-07 21:19:11

Sharding-JDBC 3.x 原理篇之基本介绍(一)

简介Sharding-JDBC是当当开源的数据库水平切分的中间件,其代表了客户端类的分库分表技术框架(这一点与MyCat不同,MyCat本质上是一种数据库代理)。Sharding-JDBC定位为轻量级数据库驱动,由客户端直连数据库,以jar包形式提供服务,未使用中间层,无需额外部署,无其他依赖,业务系统开发人员与数据库运维人员无需改变原有的开发与运维方式。因此Sharding-JDBC即为增强版...

2018-10-07 21:14:32

【新】CentOS7部署Kubernetes集群

由于官方文档更新速度跟不上软件版本迭代速度,导致官方文档部分内容无法使用。这里经过调试在原基础上进行适当修改,使服务可以正确运行。以下为操作步骤。安装Kubernetes 在安装Kubernetes之前要安装docker,其中docker的安装不再赘述,centos7中集成了Kubernetes源可直接安装。yum -y install kubernetes etcd其中etcd是一个分布式的

2017-07-07 18:42:41

Java单例模式及延迟加载

单例模式是 软件开发中非常重要的模式之一。绝大多数的软件项目中都会用到单例模式。单例模式应用的好与坏在高并发访问的情况下性能差异较为明显。下面我们来看一下单例模式的具体解释。 描述:单例模式许多时候是一个全局的静态共享对象,为了保证其性能,它应该是无锁的。 下面我们来看一下具体的实现基本实现方式: 该方式的问题是无法控制对象的加载时间。该写法在程序启动时就已经加载对象了。public clas

2017-05-25 23:21:56

Java类的热替换

描述:以下是Java类热替换的核心代码。程序直观明了,如有错误请大家提出,本人及时改正,谢谢!ClassLoader重要类说明:findLoadedClass:每个类加载器都维护有自己的一份已加载类名字空间,其中不能出现两个同名的类。凡是通过该类加载器加载的类,无论是直接的还是间接的,都保存在自己的名字空间中,该方法就是在该名字空间中寻找指定的类是否已存在,如果存在就返回给类的引用,否则就返回null。这

2017-05-25 16:51:43

Java Aio Socket异步通信例子

以下是关于AioSocket通信的一个例子,通过回调的方式发送和处理消息。其中要注意的是在缓冲区(ByteBuffer)中put数据以后要先进行flip(参见Nio部分解释)操作再发送数据,否则数据将会传输失败。以下是例子,直接上代码。服务端实现:publicclassAioServer{privateAsynchronousServerSocketChannelserver

2017-05-16 16:54:34

Java NIO 非阻塞socket通信案例

NIO的特性:它以块为基本单位处理数据,所有的数据都要通过缓冲区(Buffer)来进行传输。它有一个用来作为原始I/O操作的抽象通道(Channel)并提供了Selector的异步网络接口。且支持将文件映射到内存,以大幅提高I/O效率。 缓冲区中有3个重要的参数: position(位置):即缓冲区的位置,指缓冲区指针到哪个位置了。 capactiy(容量):缓冲区的总上限,如ByteBuff

2017-05-10 15:07:20

Java无锁堆栈详解

有这样一个题目:实现一个无锁的Stack,并写一段测试代码(多线程访问),证明这个Stack是线程安全的。分析:出于节省内存空间的考虑,使用链式的存储结构来实现。实现该堆栈的思想为:1、压入一个新节点时,将旧结点存入新结点中。弹出时将顶部节点中存入的上一节点取出并将其设为站定。2、使用无锁的实现类AtomicReference作为安全的无锁局部变量对元素进行暂存。以下为实现代码,具

2017-04-27 13:06:04

Java线程安全队列操作

题目如下: 使用 wait notify 实现一个队列,队列有2个方法,add 和 get 。add方法往队列中添加元素,get方法往队列中获得元素。队列必须是线程安全的。如果get执行时,队列为空,线程必须阻塞等待,直到有队列有数据。如果add时,队列已经满,则add线程要等待,直到队列有空闲空间。 实现这么一个队列,并写一个测试代码,使他工作在多线程的环境下,证明,它的工作是正确的。给出程序

2017-04-24 17:51:08

更改RemixOS分辨率

虚拟机安装RemixOS后屏幕分辨率很低,导致体验很差。经过一番折腾总结出以下方法,亲测有效1、启动菜单中选择并进入DEBUG模式2、重新挂载/mnt文件夹为可写入状态mount-oremount,rw/mnt3、编辑/mnt/grub/menu.list文件,在kernel一行最后添加(分辨率可以自定义,此分辨率为mbp分辨率)DATA=DPI=265UVESA_MOD

2017-04-09 09:11:29

JAVA并发编程-计算程序性能提升比率

并发编程的用途:并发编程用途通常用于图像处理,服务端编程需要处理大量数据的情况下使:**并发**是在同一CPU下同时执行不同的任务,有操作系统来控制时间片。:**并行**是在多CPU情况下同时处理多个任务。:**无障碍**是指允许同时读取或写入数据,读取或写入期间数据发生变更,则认为是无效数据,回滚操作,直到拿到正确的数据为止。:**无锁**是指所有线程可以进入,但如果数据发发生被修改的情况,线程之间

2017-02-18 12:32:50

Ubuntu安装系统根证书

Ubuntu下添加系统根证书,只要将证书(扩展名为crt)复制到**/usr/local/share/ca-certificates**文件夹然后运行update-ca-certificates即可添加证书:$sudocp证书路径.crt/usr/local/share/ca-certificates$sudoupdate-ca-certificates删除证书:

2016-10-13 10:29:45

解决wine托盘图标覆盖问题

解决wine托盘图标覆盖,使用第三方托盘图标管理工具进行托管。安装sudoapt-getinstallindicator-systemtray-unity卸载sudoapt-getpurgeindicator-systemtray-unity

2016-10-08 13:11:13

osworkflow跨步骤应用实例

对于每一个动作,都需要存在一个无条件结果,叫做 unconditional-result。这个结果只不过 是一些指令,告诉 OSWorkflow 下一步要做什么。这一结果让组成工作流的状态机从一个状 态流转到下一个状态。 Conditional Result 是 Unconditional Result 的一个扩展。除此之外它多了一个或多个 condition 子元素。第一个判定为 tru

2016-09-29 09:44:12

Ubuntu 16.04 安装 Wine 及安装 PLSQL Developer

安装PLSQL的过程相对简单,只需安装wine即可,PLSQL目前尚未发现依赖问题。系统版本:Ubuntu16.04PLSQL版本:PLSQL11ORA版本:11.2第一步:安装最新版Wine#开启32位支持$sudodpkg--add-architecturei386#添加密钥$sudoadd-apt-repositoryppa:wine/wine-builds

2016-08-31 06:11:03

Docker常用操作汇总

Docker作为新兴的虚拟化技术,在资源占用方面完全超越虚拟机,具有启动速度快,节省硬件资源等一些优点。但是在Linux环境下不方便进行图形化管理。所以特将一些实际操作中的命令及参数说明进行汇总。#查找镜像$docker search ubuntu#下载镜像$docker pull ubuntu#删除镜像$docker rmi ubuntu#查看本地镜像$docker images#

2016-08-21 18:18:19

解决Ubuntu16.04 wineQQ和wps office 不能输入中文的问题

wpssudovi/usr/bin/wpssudovi/usr/bin/wpssudovi/usr/bin/wpp$sudovi/usr/bin/et在第一行#!/bin/bash下添加:exportXMODIFIERS=”@im=fcitx”exportQT_IM_MODULE=”fcitx”2.wineQQ$sudivi/usr/shar

2016-08-21 11:59:00

查看更多

勋章 我的勋章
  • 新人勋章
    新人勋章
    用户发布第一条Blink获赞超过3个即可获得
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。