自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 资源 (2)
  • 收藏
  • 关注

原创 PostgreSQL jdbc查询百万数据导致OOM

1、在微服务的yml中已配置 url: jdbc:postgresql://${db_ip}:${db_port}/${db_name}?useCursorFetch=true&defaultFetchSize=10000,意思是在获取到的ResultSet按游标滚动,每次取10000条记录,避免占用应用内存过大,导致OOM。实测结果仍为JDBC一次性取出全部200万记录。2、查阅ht...

2019-11-14 14:45:12 2428 1

原创 Volatile

volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且当成员变量发生变化时,会强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。   Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某个对象交互时,就必

2016-09-22 22:10:13 361

转载 RESTful Web 服务四种操作POST/DELETE/PUT/GET

关于REST及RESTful的概念,已有不少文章介绍,这里整理几篇我觉得不错的参考:维基百科的定义: REST什么是REST跟RESTful? REST理论的中文详述,其中你可以了解到WCF Restful属于RPC 样式的 Web 服务,ASP.NET Web API属于RESTful Web 服务。深入浅出REST InfoQ的专文介绍,文中甚至有Roy T. Fielding当年RE

2016-08-25 11:05:23 31286 4

转载 Java正则表达式入门

众所周知,在程序开发中,难免会遇到需要匹配、查找、替换、判断字符串的情况发生,而这些情况有时又比较复杂,如果用纯编码方式解决,往往会浪费程序员的时间及精力。因此,学习及使用正则表达式,便成了解决这一矛盾的主要手段。 大 家都知道,正则表达式是一种可以用于模式匹配和替换的规范,一个正则表达式就是由普通的字符(例如字符a到z)以及特殊字符(元字符)组成的文字模式,它 用以描述在查找文字主体时待匹配

2016-08-22 17:45:55 334

转载 Java程序执行Linux命令

Java程序中要执行linux命令主要依赖2个类:Process和Runtime首先看一下Process类:[plain] view plain copyProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,  该实例可用来控制进程并获得相关信息。Proc

2016-08-22 14:48:37 1291

转载 Java transient关键字

Volatile修饰的成员变量在每次被线程访问时,都强迫从主内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到主内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。     Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。     这样当多个线程

2016-08-20 11:28:57 370

转载 TCP协议中的三次握手和四次挥手(图解)

建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:

2016-08-19 15:33:58 247

转载 TCP/IP 扫盲教程

TCP/IP 是因特网的通信协议。通信协议是对计算机必须遵守的规则的描述,只有遵守这些规则,计算机之间才能进行通信。浏览器和服务器都在使用 TCP/IP因特网浏览器和因特网服务器均使用 TCP/IP 来连接因特网。浏览器使用 TCP/IP 来访问因特网服务器,服务器使用 TCP/IP 向浏览器传回 HTML。电子邮件也使用 TCP/IP电

2016-08-19 15:32:11 942

原创 Java中Heap与Stack的区别

1) Heap是 Stack的一个子集。 2) Stack存取速度仅次于寄存器,Stack里面的数据可共享,但是其中数据的大小和生存期必须在运行前确定。 3) Heap是运行时可动态分配的数据区,从速度看比Stack慢,Heap里面的数据不共享,大小和生存期都可以在运行时再确定。 4) new关键字 是运行时在Heap里面创建对象。每new一次都一定

2016-08-18 17:46:00 259

转载 Java代码优化编程

可供程序利用的资源(内存、CPU时间、网络带宽等)是有限的,优化的目的就是让程序用尽可能少的资源完成预定的任务。优化通常包含两方面的内容:减小代码的体积,提高代码的运行效率。本文讨论的主要是如何提高代码的效率。在Java程序中,性能问题的大部分原因并不在于Java语言,而是在于程序本身。养成好的代码编写习惯非常重要,比如正确地、巧妙地运用java.lang.String类和java.u

2016-08-18 17:39:51 375

转载 在 Java2中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便。这些接口和类有很多对抽象数据类型操作的API,而这是我们常用的且在数据结

深入理解Java的接口和抽象类  对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲:  一.抽象类  二.接口  三.抽象类和接口

2016-08-17 19:39:58 528

原创 面试题--Java常用集合类

在Java中,有一套设计优良的接口和类组成了Java集合框架Collection,使程序员操作成批的数据或对象元素极为方便。例如Map(映射表)、Set(集合)、List(列表)等数据结构。Java用面向对象的设计对这些数据结构和算法进行了封装,这就极大的减化了程序员编程时的负担。程序员也可以以这个集合框架为基础,定义更高级别的数据抽象,比如Queue(队列)、Stack(栈)和线程安全的集合等,

2016-08-17 17:45:36 450

转载 Java - Collection

Collection层次结构Collection[plain] view plain copy子接口      Set,List  集合中只能放置对象的引用,不能放置原生数据类型,      我们需要使用原生数据类型的封装类才能加入到集合中  Ordered与Sorted接口

2016-08-17 17:26:09 256

转载 索引

1、定义数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引是对数据库表中一个或多个列(例如,employee 表的姓氏 (lname) 列)的值进行排序的结构。如果想按特定职员的姓来查找他或她,则与在表中搜索所有的行相比,索引有助于更快地获取信息。索引分为聚簇索引和非聚簇索引两种,聚簇索引 是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索

2016-08-17 15:13:47 194

转载 SQL 连接 JOIN 例解(左连接,右连接,全连接,内连接,交叉连接,自连接)

假设有如下表:一个为投票主表,一个为投票者信息表~记录投票人IP及对应投票类型,左右连接实际说是我们联合查询的结果以哪个表为准~1:如右接连 right join 或 right outer join:我们以右边voter表为准,则左表(voteMaster)中的记录只有当其ID在右边(voter)中存在时才会显示出来,如上图,左边中ID为3.4.5.6因为这些ID右表中没

2016-08-17 15:10:30 756

转载 图解SQL的各种连接join

对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章(实在不清楚为什么Coding Horror也被墙)通过 文氏图 Venn diagrams解释了SQL的Join。我觉得清楚易懂,转过来。假设我们有两张表,Tab

2016-08-17 15:06:33 317

原创 面试题--HashMap和HashTable的区别

HashMap父类 :AbstractMapHashtable父类:Dictiionary是否同步:HashMap否/Hashtable是k,v可否null:HashMap是/Hashtable否HashMap是Hashtable的轻量级实现(非线程安全的实现),他们都完成了Map接口。主要区别在于HashMap允许空(null)键值(key),

2016-08-17 11:58:19 2517

转载 Java中静态变量的适用场景

Java类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,有些时候可以认为是全局变量。因此在某些时候为了节省系统内存开销、共享资源,可以将类中的一些变量声明为静态变量,通过下面的例子,你可以发现合理应用静态变量带来的好处: Java代码  public class WeekA{           static class Data {       

2016-08-17 11:42:33 495

转载 Java中泛型的本质

泛型在Java中经常用到,其本质上是指类型参数化。所谓类型参数化,是指用来声明数据的类型本身,也是可以改变的,它由实际参数来决定。在一般情况下,实际参数决定了形式参数的值。而类型参数化,则是实际参数的类型决定了形式参数的类型。 举个简单的例子。方法max()要求返回两个参数中较大的那个,可以写成:Java代码  Integer max(Integer a, In

2016-08-17 11:24:55 503

转载 JAVA中堆和栈的区别

在函数中定义的一些基本类型的变量和对象的引用变量都在函数的栈内存中分配。    当在一段代码块定义一个变量时,Java就在栈中为这个变量分配内存空间,当超过变量的作用域后,Java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用。     堆内存用来存放由new创建的对象和数组。     在堆中分配的内存,由Java虚拟机的自动垃圾回收器来管理。   

2016-08-16 11:19:00 247

转载 java对ArrayList中的元素自定义排序

任何类只要实现了Comparable接口就可以调用Java提供的Array.sort()函数或是是Collections.sort()函数对一个对象列表排序,在重写Comparable中的函数是我们可以自定义对列表的排序方式,比如要对一个学生列表先按年龄排序,然后如果年龄相同的话就按姓名的字典序排序,甚至可以添加更多的排序条件。一些就以这个例子用java代码简单实现一下。我们要对学生排序,

2016-08-16 10:26:29 600

原创 笔试题--“完数”(4)

/** * 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 * 例如6=1+2+3。查找出所有大于1小于等于整数m(m  *  例如,若输入:1000,则应输出:6 28 496。 */import java.util.Scanner;public class SearchWanShu {    public static void main(S

2016-08-16 10:01:31 220

原创 笔试题--字符串处理(3)

/** * Catcher是MCA国的情报员,他工作时发现敌国会用一些对称的密码进行通信, * 比如像这些ABBA,ABA,A,123321,但是他们有时会在开始或结束时加入一些无关的字符以防止别国破解。 * 比如进行下列变化 ABBA->12ABBA,ABA->ABAKK,123321->51233214 。 * 因为截获的串太长了,而且存在多种可能的情况(abaaab可看作是a

2016-08-16 09:59:37 668

原创 笔试题--字符串处理(2)

/** * 给定一个字符串,该字符串只包含数字和字母,其中包含有连续相同的数字和字母, * 要求一个数字(该数字不包括在内)之后如果有两个或者以上重复的数字或者字母, * 则去掉一个重复的,其余的保持原样,非数字之后的重复字符保持原样输出。 * 样例输入:33zzhhhhaaa44455pppin样例输出:33zhhhhaaa445ppin */import java.

2016-08-16 09:58:08 414

原创 笔试题--字符串处理(1)

import java.util.ArrayList;import java.util.List;import java.util.Scanner;public class DescendSum {    public static void main(String[] args) {        Scanner in= new Scanner(System.

2016-08-16 09:56:47 354

原创 笔试题--删除字符串中出现次数最少的字符(5)

/** *  * 实现删除字符串中出现次数最少的字符,若多个字符出现次数一样,则都删除。 * 输出删除这些单词后的字符串,字符串中其它字符保持原来的顺序。输入描述:字符串只包含小写英文字母, 不考虑非法输入,输入的字符串长度小于等于20个字节。输出描述:删除字符串中出现次数最少的字符后的字符串。 */import java.util.Collection;i

2016-08-16 09:54:07 3004

转载 算法题: 求一个整数数组中,通过元素加减运算得到指定结果的所有运算过程. 例如【5,4,6,7,1】= 9 ?

题目: 给定一个整数数组int[] a (a.length > 1),和一个整数值 m,试输出所有运算结果等于m的运算过程。可使用的运算方式只有加法和减法。数组元素最多参与一次运算。例如,给定数组【5,4,6,7,1】和整数9,输出运算结果为9的运算过程如下:+5+4=9+5+4+6-7+1=9+5+4-6+7-1=9+5-4+7+1=9+4+6-1=9-4+6+7=9

2016-08-16 09:38:13 8006 1

转载 JAVA大数处理(BigInteger,BigDecimal)

JAVA大数处理(BigInteger,BigDecimal)     在用C或者C++处理大数时感觉非常麻烦,但是在Java中有两个类BigInteger和BigDecimal分别表示大整数类和大浮点数类,至于两个类的对象能表示最大范围不清楚,理论上能够表示无线大的数,只要计算机内存足够大。这两个类都在java.math.*包中,因此每次必须在开头处引用该包。

2016-08-14 11:28:24 457

转载 JAVA 正则表达式 (超详细)

在Sun的Java JDK 1.40版本中,Java自带了支持正则表达式的包,本文就抛砖引玉地介绍了如何使用java.util.regex包。  可粗略估计一下,除了偶尔用Linux的外,其他Linu x用户都会遇到正则表达式。正则表达式是个极端强大工具,而且在字符串模式-匹配和字符串模式-替换方面富有弹性。在Unix世界里,正则表达式几乎没有什么限制,可肯定的是,它应用非常之广泛。  正

2016-08-12 17:04:57 3319 1

转载 ifconfig命令

许多windows非常熟悉ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信息,还可以修改

2016-08-12 10:45:03 282

转载 linux常用基本命令

Linux中许多常用命令是必须掌握的,这里将我学linux入门时学的一些常用的基本命令分享给大家一下,希望可以帮助你们。这个是我将鸟哥书上的进行了一下整理的,希望不要涉及到版权问题。1、显示日期的指令: date2、显示日历的指令:cal3、简单好用的计算器:bc

2016-08-11 16:32:54 203

转载 linux vi 常用命令

转自:http://www.jb51.net/LINUXjishu/57196.htmlvi编辑器中有三种状态模式1.命令行模式2.输入模式3.末行模式三种模式间的相互转换:vi编辑器的启动与退出  直接进入编辑环境     $ vi  进入编辑环境并打开(新建)文件    $ vi myfil

2016-08-11 15:24:20 213

转载 linux ls -l 详解

转自http://hi.baidu.com/yzzcheng/item/1a2141878447891dc31627f5以root的家目录为例:可以看到,用ls -l命令查看某一个目录会得到一个7个字段的列表。第1行:总计(total)Total后面的数字是指当前目录下所有文件所占用的空间总和。可以使用ls –lh查看,也可使用ls –alh

2016-08-11 15:09:45 307

转载 Java创建线程的两个方法

Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:◆需要从Java.lang.Thread类派生一个新的线程类,重载它的run()方法; ◆实现Runnalbe接口,重载Runnalbe接口中的run()方法。 

2016-08-10 17:52:39 290

转载 Java中堆内存和栈内存详解

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器

2016-08-10 17:39:10 155

转载 overload与override的区别

override(重写,覆盖) 1、方法名、参数、返回值相同。 2、子类方法不能缩小父类方法的访问权限。 3、子类方法不能抛出比父类方法更多的异常(但子类方法可以不抛出异常)。 4、存在于父类和子类之间。 5、方法被定义为final不能被重写。 overload(重载,过载) 1、参数类型、个数、顺序至少有一个不相同。   2、不能重载只有返回值不同的方法名。 

2016-08-10 17:00:20 167

转载 @Controller和@RestController的区别?

官方文档:@RestController is a stereotype annotation that combines @ResponseBody and @Controller.意思是:@RestController注解相当于@ResponseBody + @Controller合在一起的作用。1)如果只是使用@RestController注解Controller

2016-08-10 09:44:37 547

转载 MyBatis:Insert操作详解(返回主键、批量插入)

一、前言                                     数据库操作怎能少了INSERT操作呢?下面记录MyBatis关于INSERT操作的笔记,以便日后查阅。 二、 insert元素 属性详解                              其属性如下:   parameterType ,入参的全限定类名或类型别名

2016-08-09 17:28:25 587

转载 linux grep命令

1.作用Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来。grep全称是Global Regular Expression Print,表示全局正则表达式版本,它的使用权限是所有用户。2.格式grep [options]3.主要参数[options]主要参数:-c:只输出匹配行的计数。-I:不区分大 小写(

2016-08-09 17:08:29 193

转载 java序列化java.io.Externalizable

这次我们讲的是控制对象的序列化和反序列化 控制序列化就是有选择的序列化对象,而不是把对象的所以内容都序列化,前篇我们的例子中介绍了transit变量和类变量(static)不被序列化,现在我们还有一种更为灵活的控制对象序列化和反序列方法,可以在序列化过程中储存其他非this对象包含的数据 我们现在再来介绍一个接口 java.io.Externalizable 。当对象实

2016-08-04 11:40:25 280

阿里巴巴Java开发手册(终极版)1.3.0.pdf

《阿里巴巴Java开发手册》是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一线实战的检验及不断的完善,系统化地整理成册,反馈给广大开发者。

2019-10-17

南邮考研通信

南邮 通院 考研 通信工程 内部笔记 通信原理

2013-09-30

空空如也

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

TA关注的人

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