自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

大话程序猿眼里的高并发

高并发是指在同一个时间点,有很多用户同时的访问URL地址,比如:淘宝的双11,双12,就会产生高并发,如贴吧的爆吧,就是恶意的高并发请求,也就是DDOS攻击,再屌丝点的说法就像玩撸啊撸被ADC暴击了一样,那伤害你懂得(如果你看懂了,这个说法说明是正在奔向人生巅峰的屌丝。高并发会来带的后果服务端:导致站点服务器/DB服务器资源被占满崩溃,数据的存储和更新结果和理想的设计是不一样的,...

2016-11-08 09:49:53 217

项目经理叫你改Bug,后来就发生了……

你曾经碰到过现在这种情况:你的代码非常优雅。你代码中的抽象刚刚好,不多不少。你的模块都各自独立。所有的测试结果都是绿色的。代码测试覆盖率报告花了整整一分钟才打开,上面显示着 97%……生活很美好。然后事情就这么发生了。一个 PM(产品经理)跑进来,跟你说上周你发布的那个更新里面有个 bug。不论什么时候,只要用户在购物车里添加了一...

2016-09-20 09:05:37 337

MYSQL的慢查询两个方法

  对于排查问题找出性能瓶颈来说,最容易发现并解决的问题就是MYSQL的慢查询以及没有得用索引的查询。  =========================================================  方法一: 这个方法我正在用,呵呵,比较喜欢这种即时性的。  Mysql5.0以上的版本可以支持将执行比较慢的SQL语句记录下来。  mysql> sh...

2016-05-23 13:38:30 233

Java程序员一定知道的优秀第三方库

几乎每个程序员都知道要“避免重复发明轮子”的道理——尽可能使用那些优秀的第三方框架或库,但当真正进入开发时,我却经常发现他们有时并不知道那些轮子在哪里。最近,我在业余时间带几个年轻的程序员一起做了一个很小的商业项目,而在一起开发的过程中,我几乎在所有需要判断字符串是否为空的地方,看到了下面的代码:if(inputString == null || inputString.length =...

2016-05-19 13:41:50 147

我已经写了48年代码了,我感觉我还能写下去

这是来自quroa的问题:Why-aren't-there-a-lot-of-old-programmers-at-software-companies下的一个回答。 很多人会疑问是不是程序员最后只能转管理,是不是到了中年之后就应该放弃编程。看到这个回答后很受触动,尽力翻译出来,有不恰当的地方欢迎指出。 下个星期我就69了。我从1967年开始编程。到现在已经48年了,从COBOL...

2015-11-22 11:06:46 156

关于Android Log的一些思考

在日常的Android开发中,日志打印是一项必不可少的操作,我们通过分析打印的日志可以分析程序的运行数据和情况。然而使用日志打印的正确姿势又是怎样呢,如何屏蔽日志信息输出呢,本文将逐一进行回答。哪些形式System.out.println这是标准的Java输出方法,相信很多公司都不提倡使用,这里进行列举,目的是为了提醒大家不用。Android LogAndroid自身提供了一...

2015-11-07 09:54:41 104

程序猿为什么老是活得比狗还累?

一年多,我仗著自己年轻的身体,对电脑的热情,在工作上多使用蛮力,仿佛一个使用朴素演算法实现的程式,吭赤吭赤跑个不停。一开始,朴素演算法还能在指定的工作时间内完成任务;后来任务越来越多,工作时间之内肯定没法完成,我开始窃取时间,以更长的时间换取任务的完成。我知道这不是一种科学的工作方式,但是在那种时间压力、任务压力之下,也是无可奈何。 无论如何窃取时间,一天总归只有 24 小时。无论如何使...

2015-11-04 08:36:13 144

将远程数据库导入到本地数据库

   写在前面:最近开始用Ubuntu系统,实在没有好用的mysql界面程序,于是....只能用终端操作之了。  操作过程:打开【终端】,直接输入以下内容,点回车即可  就这一句话哦!  用途:将远程服务器的数据库拷到本地。  命令行:  mysqldump -h 114.212.111.123 -uROSE -pxxxooo --opt --compress ITSM --...

2015-10-26 22:29:14 190

Java开发熟手该当心的11个错误

#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为...

2015-06-27 13:54:14 87

Oracle里的自增字段设置

 大家都知道吧,这很坑,尤其是用惯了mysql里的自增字段设置,结果oracle里面没有的。oh,no  我用的是12c版本的,它有一个新特性,可以这样设置自增序列,在创建表是,把id设置为自增序列create table t(id       number generated by default as identity (start with 1 increment b...

2015-04-19 10:54:50 126

Java开发熟手该当心的11个错误

#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为...

2015-03-22 09:36:44 80

Java开发者写SQL时常犯的10个错误

1、不用PreparedStatements  有意思的是,在JDBC出现了许多年后的今天,这个错误依然出现在博客、论坛和邮件列表中,即便要记住和理解它是一件很简单的事。开发者不使用PreparedStatements的原因可能有如下几个:  他们对PreparedStatements不了解  他们认为使用PreparedStatements太慢了  他们认为写PreparedS...

2015-03-14 17:13:25 104

关于java堆内存溢出的几种情况

【情况一】:  java.lang.OutOfMemoryError: Java heap space:这种是java堆内存不够,一个原因是真不够,另一个原因是程序中有死循环;  如果是java堆内存不够的话,可以通过调整JVM下面的配置来解决:  <jvm-arg>-Xms3062m</jvm-arg>  <jvm-arg>-Xmx3062m...

2015-02-27 10:01:06 219

Java线程中yield与join方法的区别

长期以来,多线程问题颇为受到面试官的青睐。虽然我个人认为我们当中很少有人能真正获得机会开发复杂的多线程应用(在过去的七年中,我得到了一个机会),但是理解多线程对增加你的信心很有用。之前,我讨论了一个wait()和sleep()方法区别的问题,这一次,我将会讨论join()和yield()方法的区别。坦白的说,实际上我并没有用过其中任何一个方法,所以,如果你感觉有不恰当的地方,请提出讨论。 ...

2015-02-21 17:53:30 156

Java进行RSA加解密的例子

加密是保证数据安全的手段之一。加密是将纯文本数据转换为难以理解的密文;解密是将密文转换回纯文本。  数据的加解密属于密码学的范畴。通常,加密和解密都需要使用一些秘密信息,这些秘密信息叫做密钥,将纯文本转为密文或者转回的时候都要用到这些密钥。  对称加密指的是发送者和接收者共用同一个密钥的加解密方法。  非对称加密(又称公钥加密)指的是需要一个私有密钥一个公开密钥,两个不同的密钥的加解...

2015-02-08 09:56:20 130

MySQL编程中的6个重要的实用技巧

每一行命令都是用分号(;)作为结束对于MySQL,第一件你必须牢记的是它的每一行命令都是用分号(;)作为结束的,但当一行MySQL被插入在PHP代码中时,最好把后面的分号省略掉,例如:mysql_query("INSERT INTO tablename(first_name,last_name)VALUES('$first_name',$last_name')");这是因为PHP...

2015-02-07 08:13:02 109

最具争议的10个Java话题

1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala!  随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。  2、Java 9 即将到来  Oracle早在8月份就发布了Java...

2015-02-05 09:10:21 168

MySQL双向复制

本文包括:主机配置从机配置建立主-从复制建立双向复制 背景按照以下简单的步骤:参考一下:在机器A配置主机(192.168.1.30)在机器B配置从机(192.168.1.29)我们可以使用下面的步骤来实现这一点 步骤1:机器A设置主机在主机中打开配置文件 , 默认文件位置...

2015-02-04 09:04:37 75

两个容易被忽略的MySQL知识

1、varchar(5)可以存储多少个汉字,多少个字母数字?  相信有好多人应该跟我一样,对这个已经很熟悉了,根据经验我们能很快的做出决定,比如说用varchar(200)去存储url等等,但是,即使你用了很多次也很熟悉了,也有可能对上面的问题做出错误的回答。  这个问题我查了好多资料,有的人说是可以存储5个字符,2.5个汉字(每个汉字占用两个字节的话),有的人说这个要区分版本,5.0是...

2015-02-03 16:25:57 85

101个MySQL 的调节和优化的提示

 1. 拥有足够的物理内存来把整个InnoDB文件加载到内存中——在内存中访问文件时的速度要比在硬盘中访问时快的多。  2. 不惜一切代价避免使用Swap交换分区 – 交换时是从硬盘读取的,它的速度很慢。  3. 使用电池供电的RAM(注:RAM即随机存储器)。  4. 使用高级的RAID(注:Redundant Arrays of Inexpensive Disks,即磁盘阵列) ...

2015-01-30 10:00:01 72

为什么不允许代码里出现“魔数”

  在一个新项目中,我最先做的事情之一,就是建立使用诸如Checkstyle和Findbugs之类工具的准则。目的是制定一些代码规范,以及避免通过静态代码分析就能够检测到的bug。  迟早会有人给出案例说这样太离谱了。其中的一个案例是Checkstyle的魔数检查。它会对任何没有定义常量就使用的数字字面量给出警告,除了-1、0、1和2。  很多开发者在这个检查方面都有问题,这可以从结果代...

2015-01-29 10:13:32 1050

Linux忘记root密码的解决思路

1:使用同版本的linux启动系统,chroot到忘记密码的根分区passwd改密码  2:grub启动菜单中加入init=/bin/bash进入系统,不过这时挂载的是只读分区。根据系统的分区情况进一步判断.  3: grub启动菜单中加入 single以单用户进入系统.  4:用以上方法mount到根分区把/etc/passwd中的root密码去除  例如:  root:x...

2015-01-24 17:32:55 188

Java高效读取大文件

  读取文件行的标准方式是在内存中读取,Guava 和Apache Commons IO都提供了如下所示快速读取文件行的方法:  Files.readLines(new File(path), Charsets.UTF_8);  FileUtils.readLines(new File(path));  这种方法带来的问题是文件的所有行都被存放在内存中,当文件足够大时很快就会导致程序...

2015-01-21 13:45:15 123

Java常见内存溢出异常分析

 栈溢出(StackOverflowError)  栈溢出抛出java.lang.StackOverflowError错误,出现此种情况是因为方法运行的时候栈的深度超过了虚拟机容许的最大深度所致。  出现这种情况,一般情况下是程序错误所致的,比如写了一个死递归,就有可能造成此种情况。 下面我们通过一段代码来模拟一下此种情况的内存溢出。import java.util.*;  i...

2015-01-20 06:15:31 114

成为高级程序员的10个步骤

What软件工程师的职业生涯要历经以下几个阶段:初级、中级,最后才是高级。这篇文章主要是讲如何通过 10 个步骤助你成为一名高级软件工程师。 Why得到更多的报酬!因为你的薪水会随着你水平的提高而增加提升你的职业生涯。成为了高级软件工程师之后,就可以朝着架构师、团队负责人、CTO 等职位前进历经更大的挑战。随着你的成长,各种影响力也会提高。...

2015-01-17 11:09:01 282

MySQL中的 <=>操作符?

· 问题 :  我在看以前的一个开发者的代码时看到  WHERE p.name &lt;=&gt; NULL  在这个查询语句中 &lt;=&gt;符号是什么意思啊?是不是和 =号是一样啊?还是一个语法错误啊?但是没有显示任何错误或者异常。我已经知道了mysql中的 &lt;&gt; = !=等符号。  · 最佳回答 :  和=号的相同点  像常规的=运算符一样,两个...

2015-01-12 13:37:57 76

Java 9中新的货币API

 JSR 354定义了一套新的Java货币API,计划会在Java 9中正式引入。本文中我们将来看一下它的参考实现:JavaMoney的当前进展。  正如我在之前那篇Java 8新的日期时间API一文中那样,本文主要也是通过一些代码来演示下新的API的用法 。  在开始之前,我想先用一段话来简短地总结一下规范定义的这套新的API的用意何在:  对许多应用而言货币价值都是一个关键的特性...

2015-01-11 10:34:55 249

Oracle更改数据库实例存放的位置?

 在安装oracle数据库的时候,一般就把数据库给创建了。当使用Database Configuration Assistant工具创建另外一个数据库的时候,一般数据库默认的数据路径放在oracle安装路径下面(例如:C:\oracle\oradata)。为了提高数据库的性能,一般oracle的主目录和数据文件要分别放在不同的盘中。而且系统C盘很容易崩溃,且空间小,不小心数据将随系统的崩溃而消失...

2015-01-08 10:14:19 1840

小技巧:显示数据库查询耗时,改善开发者习惯

 很多原因都可能导致网站运行缓慢,但这其中最常见的就是在数据库查询耗时太多。目前,数据库查询可能在网页渲染过程中起着很重要的作用(网页上的内容总得从某处获取),但是有时候 一些不必要的亦或没有优化好的查询会影响网页渲染的速度。  例如:  · 查询的数据根本没有被使用  · 查询时未使用索引  · 单次查询可以实现的功能却做了多次查询  · 慢且复杂的查询  然而有一个简...

2015-01-06 14:01:28 100

Java中有关Null的9件事

Java中的Null是什么?  正如我说过的那样,null是Java中一个很重要的概念。null设计初衷是为了表示一些缺失的东西,例如缺失的用户、资源或其他东西。但是,一年后,令人头疼的空指针异常给Java程序员带来不少的骚扰。在这份材料中,我们将学习到Java中null关键字的基本细节,并且探索一些技术来尽可能的减少null的检查以及如何避免恶心的空指针异常。 1)首先,null...

2015-01-03 21:13:30 82

理解Java中的弱引用

 不久之前,我面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。  然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了解这...

2014-12-31 09:38:03 102

程序员找不到开发工作的6大原因

1.我们Google了你的名字“这家伙不错”,但是当我用你的名字和电子邮件地址作了个快速搜索之后,我整个人都不好了。嗯,你有一个可爱的小博客,但是貌似已经四年没有更新了,当然这不是我关注的重点。可是貌似你的电子邮件地址别名GolDieHoRE正在网上销售《World of Warcraft gold》。好吧,这个我也不多说了,可是你的网页遍布XX广告,甚至在上面大声叫嚣“那些混球能强...

2014-12-29 23:20:22 369

5个JavaScript面试题

问题1:闭包考虑下面的代码:123456var nodes = document.getElementsByTagName('button');for (var i = 0; i &lt; nodes.length; i++) {   nodes[i].addEventListener('click', functio...

2014-12-27 11:04:17 103

程序员在编程中遇到的奇葩弱智问题

  现在收集一下:     排名不分先后,按照发言顺序来的。 1、Jquery插件一个通用函数一直报错,尤其是很明显是存在的函数,很有可能就是你没有引入jquery。。。或者版本不对2、调试半天没变化:不在同一个文件中调试。这个很可怕,我们很多时候会备份好几个项目,改完发现改错了。有个群友说的好:   在汤匙里放盐。3、配置文件中的空格,或者编码问题...

2014-12-23 19:36:58 124

RedHat 6* 修改系统时区解决

  今天又被开发的说服务器时间异常,时差很大。我就纳闷了,上个星期都调整过的。  去查看了一下。  [root@BIAPP default]# date -R  Fu, 11 Dec 2014 02:26:08 -0500  跟当前的时间大概相差13个小时。于是我就手动的修改了时间:  # date -s "2014-12-12 11:30:00"   ---- 今天是双十二...

2014-12-21 10:49:50 1687

Linux用netstat查看服务及监听端口

 [root@localhost ~]# netstat -nlp  netstat命令各个参数说明如下:  -t : 指明显示TCP端口  -u : 指明显示UDP端口  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。  -n : 不...

2014-12-15 09:15:38 1001

对中级Linux用户有用的20个命令

1. 命令: Find  搜索指定目录下的文件,从开始于父目录,然后搜索子目录。  注意: -name‘选项是搜索大小写敏感。可以使用-iname‘选项,这样在搜索中可以忽略大小写。(*是通配符,可以搜索所有的文件;‘.sh‘你可以使用文件名或者文件名的一部分来制定输出结果)  注意:以上命令查找根目录下和所有文件夹以及加载的设备的子目录下的所有包含‘tar.gz’的文件。  ’...

2014-12-12 09:21:31 86

PLSQL Developer鲜为人知的快捷键

使用PLSQL Developer的朋友们是否有遇到如下情况  ① 不小心关闭了有用的窗口;  ② 有意义的sql前几分钟不用了且关闭的情况;  ③ PLSQL Developer界面中其中1个session 死掉了不得不关闭时,再重新开启点击恢复会话后可能不会和之前场景一摸一摸时;  如上的情况都可以通过如下快捷键进行恢复.  Ctrl+E【default】  ==&gt;...

2014-12-10 11:06:25 131

Java泛型与类型擦除

“编译器会进行泛型擦除”是一个常识了(好吧,实际擦除的是参数和自变量的类型)。这个过程由“类型擦除”实现。但是并非像许多开发者认为的那样,在 &lt;..&gt; 符号内的东西都被擦除了。看下面这段代码:public class ClassTest {public static void main(String[] args) throws Exception {Parameteri...

2014-12-01 09:00:16 85

各数据库的批量Update操作

MyBatis的update元素的用法与insert元素基本相同,因此本篇不打算重复了。本篇仅记录批量update操作的sql语句,懂得SQL语句,那么MyBatis部分的操作就简单了。  注意:下列批量更新语句都是作为一个事务整体执行,要不全部成功,要不全部回滚。MSSQL的SQL语句 WITH R AS(  SELECT 'John' as name, 18 as age...

2014-11-26 08:18:58 137

空空如也

空空如也

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

TA关注的人

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