自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

StruggleShu的博客

不积跬步,无以至千里;不积小流,无以成江海。

  • 博客(27)
  • 收藏
  • 关注

转载 Java多线程之Condition

Condition,Condition 将 Object 监视器方法(wait、notify 和 notifyAll)分解成截然不同的对象,以便通过将这些对象与任意 Lock 实现组合使用,为每个对象提供多个等待 set (wait-set)。其中,Lock 替代了 synchronized 方法和语句的使用,Condition 替代了 Object 监视器方法的使用。下面将之前写过的一个线程通信的

2017-07-15 10:02:25 572

原创 JConsole的远程连接

JConsole是基于JMX的可视化监视、管理工具。可以很方便的监视本地及远程服务器的java进程的内存使用情况。下面介绍如何连接远程服务器,进行远程java程序的监控。1、使用hostname -i 查看远程主机的hostname。如果显示为 127.0.0.1,需要进行修改。vim /etc/hosts修改127.0.0.0.1 为服务器真实的外网ip。2、被监控的程序运行时给虚拟机添加一

2017-07-10 10:45:34 6732

原创 数据库之事务

定义事务是一组原子性的SQL查询,或者说一个独立的工作单元。如果数据库引擎能够成功地对数据库应用该组查询的全部语句,那么就执行该组查询。如果其中一条语句因为崩溃或其他原因无法执行,那么多有的语句都不会执行。也就是说,事务内的语句,要么全部执行成功,要么全部执行失败。通俗的讲,事务就是一件事情。是一个不可分割的整体,就像化学原子一样,是构成物质的最小单元。ACID原子性(Atomicity):一个

2017-07-01 17:09:43 800

原创 Java多线程之ThreadLocal

ThreadLocal直译为"本地线程",但它并不是这样。ThreadLocal本身其实是一个容器,用于 存放线程的局部变量,这个类能使线程中的某个值与保存值的线程对象关联起来。ThreadLocal提供了get和set等访问接口或方法,这些方法为每个使用该变量的线程都存有一份副本,因此get总是返回当前执行线程在调用set时设置的最新值。下面将以实例代码说明。场景:一个序列号生成器的程序同时会有多

2017-06-28 10:40:57 494

转载 Intellij IDEA中生成jar包

Intellij IDEA 为优秀的Java开发环境,但是有很多人知道利用此工具可以编译成class文件,而不知道如何在intellij IDEA工具如何将所有的class打包成jar文件,现在将方法介绍如下:1.选择菜单File->Project Structure,将弹出Project Structure的设置对话框。2.选择左边的Artifacts后点击上方的“+”按钮3.在弹出的框中选择ja

2017-06-20 18:29:26 804

转载 Centos7下中文乱码解决

CentOS 7 终端中文乱码解决办法:1、使用vim编辑locale.config文件:vim /etc/locale.conf2、将LANG=”C”修改为:LANG="zh_CN.UTF-8"LANGUAGE="zh_CN.UTF-8:zh_CN.UTF-8:zh_CN"SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"SYSFONT

2017-06-20 17:38:46 1908

原创 Java之泛型剖析

泛型程序设计意味着编写的代码可以被很多不同类型的对象所重用。泛型提供了一个类型参数用来指示元素的类型。比如AarryList: ArrayList<Sting> strs = new ArrayList<String>();(根据多态性,前面的ArrayList<String>可以换成List<String>)。这样使代码有更好的可读性。一个泛型类就是具有一个或多个类型变量的类。下面是一个简单的

2017-06-17 20:55:03 380

原创 Java之注解初学

注解是那些插入到源代码中用于某种工具处理的标签。这些标签可以在源代码层次上进行操作,也可以在处理编译器将它们纳入到注解类文件中。在Java中,注解是当一个修饰符来被使用的,它被置于被注解项之前,中间没有分号。注解语法一个注解是由一个注解接口定义的 modifiers @interface AnnotationName { element declaration1;

2017-06-16 21:59:42 444

原创 Java多线程之CountDwonLatch

CountDwonLatch是一个非常实用的多线程控制工具类,这个工具类通常用来控制线程等待,它可以让某个线程等待直到其它线程执行任务结束,在开始执行。下面先看代码,根据代码分析程序,提出问题。import java.util.concurrent.CountDownLatch;import java.util.concurrent.ExecutorService;import java.ut

2017-06-15 21:07:19 1822

原创 枚举单例模式

Java中的枚举类非常强大的。之前看过单例的许多实现,对于枚举的单例略有了解,但理解不够深刻,最近结合实例研究了一下,感觉枚举是很强大且非常好用。首先看一个最简单的枚举单例模式:public enum TestEnum { TEST_ENUM;}其中TEST_ENUM,即为TestEnum类的唯一实例。这样写可能一眼看去,没什么意义。也不是很好理解。下面以生成一个单例的CGLib动态代

2017-06-14 21:12:24 1139

原创 Java中的枚举

虽然知道在Java中存在枚举类型,但是却一直很少用。最近接触了一些,特加以总结。枚举类型的定义枚举类型是指由一组固定的常量组成合法值的类型。比如我们常用的: public static final static ERROR = -1; public static final static SUCCESS = 1;根据枚举类型的定义,其实这也属于一种枚举,一种int枚举模式。这种模

2017-06-13 18:08:21 536

原创 HTTP缓存字段总结

HTTP控制缓存的字段主要包括Cache-Control/Pragma,Expires,Last-Modified/Etag。1、Cache-Control/Pragma 这个HTTP Head字段用于指定所有缓存机制在整个请求/响应链中必须服从的指令,如果知道该页面是否为缓存,不仅可以控制浏览器,还可以控制和HTTP相关的缓存或代理服务器。它可以指定下列可选值: 1、Public:

2017-06-12 16:01:36 3994

原创 Wireshark抓包分析TCP的三次握手

今天学习了Wireshark工具,对于抓包有了极大的兴趣;特意通过抓包来加深一下TCP三次握手的过程,同时做以记录。TCP报文段结构过滤规则介绍 网络中包含着许多的数据报文,但是许多的都不是我们需要的。网上给的大多数规则不够具体,通过查阅资料,用下面的过滤规则可以更快的抓取TCP三次握手的包.tcp.flags.syn == 0x02 || tcp.flags.ack == 0x02 &&

2017-06-11 13:54:54 3585 1

原创 JSON字符串,JSON对象,JSON数组

JSON的全称是"JavaScript Object Notation",意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式。JSON必须是符合以下两点: 1.键一定要用双引号,值如果是字符串也要用双引号包括 2.数据只包括,数字,布尔,数组,null,对象,字符串下面先给出JSON对象,JSON字符串,JSON数组的基本形式,用于对比 JSO

2017-06-11 11:23:53 690

原创 Ubuntu15.10 下安装Oracle 11g

学Oracle数据库之前,首先面临的是安装数据库Oracle数据库,前几天在ubuntu下安装好了,现在总结一下安装过程。

2016-06-04 21:07:38 2150

原创 二分查找的非递归和递归例程实现

二分查找:定义一个整数X,和整数A(0),A(1),A(2),......A(N-1),后者已经预先排序并在内存中,求使得Ai=X的下标i,如果X不存在,则返回-1。策略:验证X是否是居中的二分查找的非递归实现int BinarySearch(const ElementType a[], ElementType x, int N){ int Low, Mid, Hig

2016-05-09 22:06:15 798

原创 C语言中一类特殊的数组越界!!

首先看一段C语言程序(红色字体部分数组越界访问)和运行的结果(系统unbantu15.10,编译器 vim)# include int a[2] = {2, 3};int b;void func(){ static int s = 8;}int main(void){ b = 12; func(); printf("%d", a[2]);//越界访问 re

2016-05-02 16:16:55 1944 5

原创 ubuntu下编写并运行第一个c语言程序

对于初入Ubantu系统的小伙伴来说,进入Ubuntu最想做的事莫过于在终端(Terminal)里运行自己的第一个C/C++程序"hello.c/hello.cpp"了。Ubuntu默认是不包含编辑器vim和编译器gcc。如果你是刚安装好的Ubuntu电脑,下面我们将来实现自己的第一个程序。1.准备工作1.1 打开控制台:使用快捷键 Ctrl + Alt + T;1

2016-04-23 22:38:10 39840 4

原创 java实现二叉树

用java实现实现二叉树第一步:创建节点类class TreeNode { private Object nodeValue; private TreeNode left, right; public TreeNode(){ this(null, null, null); } public TreeNode(Object item){ nodeValue

2016-04-18 21:21:46 807

原创 最大子序和问题

最大子序和问题:给定整数A1,A2,.....An(可能有负数),求A1 +A2+A3+......+An的最大值(规定:如果所有整数均为负数,则最大子序和为0)例:输入-2, 11, -4, 13, -5, -2时,答案为20(从A2到A4)。下面给出四种不同复杂度的算法,进行比较分析O(N3)的算法

2016-04-14 13:32:56 1869

原创 C语言中取余与取模的区别

c中取余与取模区别对于整型数a,b来说,取模运算或者求余运算的方法都是:1.求 整数商: c = a/b;2.计算模或者余数: r = a - c*b.求模运算和求余运算在第一步不同: 取余运算在取c的值时,向0 方向舍入;而取模运算在计算c的值时,向负无穷方向舍入。所谓向0方向舍入,就是以小数点为界限,直接将小数部分去掉。如(Int)-1.324=

2016-04-08 20:59:53 18347

原创 多线程下单重判断懒汉式的低效原因分析及改进

单例模式下的懒汉式在多线程的情况下会出现安全隐患,所以需要加入同步机制,以解决问题,代码如下:class Single{ private Single(){} private static Single s = null; public static synchroized Single getInstance(){ if (s == null){ s = new Si

2016-04-08 20:07:39 1190

转载 进程与线程的区别

进程和线程的区别?进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享

2016-04-07 23:11:00 476

原创 从简单的选择排序入手,深刻理解程序

深刻理解选择排序选择排序法基本思想:第1趟,在待排序记录r[1]~r[n]中选出最小的记录,将它与r[1]交换;第2趟,在待排序记录r[2]~r[n]中选出最小的记录,将它与r[2]交换;以此类推,第i趟在待排序记录r[i]~r[n]中选出最小的记录,将它与r[i]交换,使有序序列不断增长直到全部排序完毕给定一组数据int[] nums ={21, 14, 17, 12, 5,

2016-04-03 21:34:40 1410

转载 怎么更好地终极理解递归算法

递归真是个奇妙的思维方式。对一些简单的递归问题,我总是惊叹于递归描述问题和编写代码的简洁。但是总感觉没能融会贯通地理解递归,有时尝试用大脑去深入“递归”,层次较深时便常产生进不去,出不来的感觉。这种状态也导致我很难灵活地运用递归解决问题。有一天,我看到一句英文:“To Iterate is Human, to Recurse, Divine.”中文译为:“人理解迭代,神理解递归。”然后,我心安理得

2016-04-03 17:31:35 21397 3

原创 电脑优化及精品软件分享

电脑优化及精品软件分享       电脑刚买来时就像一张白纸,然后我们不断地在这张白纸上刻画。对于好的艺术家(有好的习惯的人)来说,可以使手中工具(电脑),行云流水(流畅运行)。而对于相反的人来说(习惯不好的人来说),只会越用越糟糕...今天分享一下我的一些使用电脑的经验,希望对大家有帮助,成为一个好的艺术家(对于艺术家,可以跳过第一部分,直接可以看下面的干货分享哦,会有你想要的)。

2016-04-03 10:33:02 1800 1

原创 Windows10下u盘安装Ubuntu系统经验分享

今天趁放假有空,尝试着在windows10系统的前提下,为系统又装了一个unbantu15.04,对于有一定装机经验的人,挺快的,下面附上经验,供大家参考unbantu 15.04下载地址:http://www.linuxsight.com/blog/8360安装教程:http://www.360doc.com/content/16/0103/13/7845658_52

2016-04-01 22:00:53 2402

空空如也

空空如也

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

TA关注的人

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