自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(159)
  • 问答 (2)
  • 收藏
  • 关注

原创 java多态 深入浅出

最近培训的堂弟昨晚问了我一个问题,说多态是什么,我感觉是:一个类中,有几个方法,他们的方法名都是method,只不过他们的参数个数、类型或者返回值不同。然后他说:我们老师说:子类、父类之间,向上转型*&……%¥#2@4¥5%6,它只能访问自己定义的方法,&……%#@¥%……&,我感觉我有点迷糊,自己网上搜了下,发现java中讲的多态还有另外一种定义:多态存在的三个必要条件一

2016-11-10 17:19:44 446

转载 设计模式~组合模式

1. 概述在数据结构里面,树结构是很重要,我们可以把树的结构应用到设计模式里面。例子1:就是多级树形菜单。例子2:文件和文件夹目录2.问题我们可以使用简单的对象组合成复杂的对象,而这个复杂对象有可以组合成更大的对象。我们可以把简单这些对象定义成类,然后定义一些容器类来存储这些简单对象。客户端代码必须区别对象简单对象和容器对象,而实际上大多数情况下用户认为它们是一

2016-11-09 18:00:27 351

原创 java io 呕心沥血的学习 学了就忘

java io 详解

2016-11-04 11:58:06 5749 1

原创 java 读写锁 ReadWriteLock

1、需要操作的共享对象,银行卡,大家都网购,用这张卡package Thread_readWriteLock;public class ShareAccount { private String oid; //账号 private int cash; //账户余额 ShareAccount(Str

2016-11-03 11:23:44 528 1

原创 java实现生产者消费者

1、仓库类package Thread_test.ProducerAndConsumer;import java.util.LinkedList;/** * * @author zhengchao */public class CangKu { private final LinkedList list; private static final

2016-11-02 18:05:09 400 2

转载 java系统性能调优

系统性能调优(1)----步骤与思路概念(来自度娘)系统优化原来是系统科学(系统论)的术语,现在常用作计算机方面的术语。它尽可能减少计算机执行的进程,更改工作模式,删除不必要的中断让机器运行更有效,优化文件位置使数据读写更快,空出更多的系统资源供用户支配,以及减少不必要的系统加载项及自动启动项。当然优化到一定程度可能略微影响系统稳定性,但基本对硬件无害。系统优化的一般步骤分为五步,

2016-11-01 11:17:40 6552

转载 java中的==、equals()、hashCode()源码分析

在java编程或者面试中经常会遇到 == 、equals()的比较。自己看了看源码,结合实际的编程总结一下。1. ==   java中的==是比较两个对象在JVM中的地址。比较好理解。看下面的代码:public class ComAddr{ public static void main(String[] args) throws Exception {

2016-10-28 15:57:54 351

原创 java~冒泡排序、插入排序

1、冒泡排序:稳定算法描述:相邻两个元素比较,每轮排序都会产生剩余需要排序的数据中的一个最大或最小的数据。算法实现:public class TestSort { public static void main(String[] args) { int[] a = {9, 1, 5, 2, 4, 8}; //冒泡排序 for(in

2016-10-27 15:38:43 387

原创 java定义静态变量的作用 static关键字

我们知道类中的静态变量在程序运行期间,其内存空间对所有该类的对象实例而言是共享的,为了节省系统内存开销、共享资源,应该将一些变量声明为静态变量。通过下面的例子,你就会发现有什么不同。代码一:public class MemoryTest { static class Data{ private int week; private S

2016-10-25 11:33:09 10750

转载 JVM性能调优

JVM性能调优博客分类: JVM JVM垃圾回收与性能调优总结JVM调优的几种策略  一、JVM内存模型及垃圾收集算法 1.根据Java虚拟机规范,JVM将内存划分为:New(年轻代)Tenured(年老代)永久代(Perm)  其中New和Tenured属于堆内存,堆内存会从JVM启动参数(-Xmx:

2016-10-25 10:32:15 600

转载 Java的Exception和Error面试题

在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题。Exception处理是Java应用开发中一个非常重要的方面,也是编写强健 而稳定的Java程序的关键,这自然使它成为面试题中的常客。关于Java中Error和Exception的面试题目多是关于Exception和 Error的概念,如何处理Exception,以及 处理Exception时需要遵守的最佳实践

2016-10-24 18:39:11 2066

原创 java算法0~大数相加

思路:(我们不用java的BigDecimal来操作)  1.反转两个字符串,便于从低位到高位相加和最高位的进位导致和的位数增加;      2.对齐两个字符串,即短字符串的高位用‘0’补齐,便于后面的相加;      3.把两个正整数相加,一位一位的加并加上进位。package test_technology;/** * * @author zhengchao

2016-10-21 12:11:36 1168

原创 MySQL SQL语句优化技巧

1、应尽量避免在 where 子句中使用!=或2、对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。3、应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如:select id from t where num is null可以在num上设置默认值0,确保表

2016-10-20 14:46:25 380

转载 Mysql主从复制

Mysql内建的复制功能是构建大型,高性能应用程序的基础。将Mysql的数据分布到多个系统上去,这种分布的机制,是通过将Mysql的某一台主机的数据复制到其它主机(slaves)上,并重新执行一遍来实现的。复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。当一个从服务器连

2016-10-20 13:47:54 401

转载 运维角度浅谈MySQL数据库优化

一个成熟的数据库架构并不是一开始设计就具备高可用、高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善。这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分为以下五个阶段: 1、数据库表设计项目立项后,开发部根据产品部需求开发项目,开发工程师工作其中一部分就是对表结构设计。对于数据库来说,这点很重要,如果设计不当,会直接影响访问速

2016-10-20 12:47:34 1249

转载 JAVA中关于Map的九大问题

通常来说,Map是一个由键值对组成的数据结构,且在集合中每个键是唯一的。下面就以K和V来代表键和值,来说明一下java中关于Map的九大问题。0、将Map转换为List类型在java中Map接口提供了三种集合获取方式:Key set,,value set, and key-value set.。它们都可以通过构造方法或者addAll()方法来转换为List类型。下面代码

2016-10-17 10:00:19 363

原创 java 序列化

1、序列化是干什么的?       简单说就是为了保存在内存中的各种对象的状态(也就是实例变量,不是方法),并且可以把保存的对象状态再读出来。虽然你可以用你自己的各种各样的方法来保存object states,但是Java给你提供一种应该比你自己好的保存对象状态的机制,那就是序列化。2、什么情况下需要序列化       a)当你想把的内存中的对象状态保存到一个文件中或者数据库中时候

2016-10-14 18:02:36 416

原创 字节流和字符流的区别

字节流与字符流先来看一下流的概念:在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成。程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。字节流与字符流在Java.io包中操作文件内容的主要有两大类:字节流、字符流,两类都分为输入和输出操作。在字节流中输出数据主要是...

2016-10-14 15:58:11 456

原创 java IO详解

先看java IO家族的结构图:看了很眼疼,是吧,一个个来看吧。1、import java.io.File:先从io的数据源开始讲解package IO_TEST;import java.io.File;import java.io.IOException;import java.util.logging.Level;import

2016-10-14 13:38:48 1233

原创 设计模式~装饰模式

装饰模式的构成:1)    抽象构建角色(Component):给出一个抽象的接口,以规范准备接受附加责任的对象。相当于i/o流里面InputStream/OutputStream和Reader/Writer。2)    具体的构建角色(ConcreteComponent):定义一个将要接受附加责任的类。相当于i/o里面的FileOutputStream和FileInputStre

2016-10-12 19:00:17 428

原创 设计模式~观察者模式

观察者模式 Observer  观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。  这个主题对象在状态上发生变化时,会通知所有观察者对象,让它们能够自动更新自己。 观察者模式的组成  抽象主题角色:把所有对观察者对象的引用保存在一个集合中,每个抽象主题角色都可以有任意数量的观察者。抽象主题提供一个接口,可以增加和删除观察

2016-10-12 16:44:59 355

转载 设计模式~适配器模式

1、概述 适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。2、适配器模式的用途 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 下面是两个典型例子3、模式中的角色3.1 目标接口(Target):客户所期待的接口。目标可以是

2016-10-12 16:36:59 337

原创 设计模式~单例模式

设计模式 -- 单例模式(饿汉,懒汉模式与多线程下的使用)单例模式:单例模式就是在应用程序中只创建一个该类的对象。又分为饿汉模式和懒汉模式。实现套路也就是只提供私有构造函数,然后提供公有的 getInstance 方法。饿汉模式:也就是一开始就创建该对象。懒汉模式:等到需要用到的时候才创建该对象。饿汉模式public class Singleton {

2016-10-12 14:43:48 418

转载 设计模式~工厂模式

在面向对象编程中, 最通常的方法是一个new操作符产生一个对象实例,new操作符就是用来构造对象实例的。但是在一些情况下, new操作符直接生成对象会带来一些问题。举例来说, 许多类型对象的创造需要一系列的步骤: 你可能需要计算或取得对象的初始设置; 选择生成哪个子对象实例; 或在生成你需要的对象之前必须先生成一些辅助功能的对象。 在这些情况,新对象的建立就是一个 “过程”,不仅是一个操作,像一部

2016-10-12 13:58:47 499 1

原创 设计模式~策略模式

设计模式~设计原则:(重要)1、逻辑代码独立到单独的方法中,注重封装性--易读,易复用。不要在一个方法中,写下上百行的逻辑代码。把各小逻辑代码独立出来,写于其它方法中,易读其可重复调用。2、写类,写方法,写功能时,应考虑其移植性,复用性:防止一次性代码!是否可以拿到其它同类事物中应该?是否可以拿到其它系统中应该?//这句话才是真正什么时候使用继承,什么时候使

2016-10-12 11:42:14 435

转载 Lock为什么比synchronized 能更好的实现同步访问

synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?  如果一个代码块被synchronized修饰了,当一个线程获取了对应的锁,并执行该代码块时,其他线程便只能一直等待,等待获取锁的线程释放锁,而这里获取锁的线程释放锁只会有两种情况:  1)获取锁的线程执行完了该代码块,然后线程释放对锁的占有;  2)线程执行发

2016-10-10 14:36:53 4104

原创 Thread和Runnable的真正区别

很多初学者在被问到,Thread和Runnable的区别时,都会说,一个是继承、一个是实现接口,java是单继承、多接口,正常情况下使用Runnable好一点,相信很多人都会这么说。我们先来看描述:1.  通过继承Thread类,重写Thread的run()方法,将线程运行的逻辑放在其中2.  通过实现Runnable接口,实例化Thread类看到没?1中说了重写Thread的

2016-10-08 18:28:35 737 1

转载 SQL注入实例

一、SQL注入的步骤 a) 寻找注入点(如:登录界面、留言板等) b) 用户自己构造SQL语句(如:' or 1=1#,后面会讲解) c) 将sql语句发送给数据库管理系统(DBMS) d) DBMS接收请求,并将该请求解释成机器代码指令,执行必要的存取操作 e) DBMS接受返回的结果,并处理,返回给用户 因为用户构造了特殊的SQL语句,必定返回特殊的结果(只要你的SQL

2016-09-23 14:07:57 1682

转载 WEB服务器与应用服务器的区别

一.简述一.简述WEB服务器与应用服务器的区别:1.WEB服务器:理解WEB服务器,首先你要理解什么是WEB?WEB你可以简单理解为你所看到的HTML页面就是WEB的数据元素,处理这些数据元素的应用软件就叫WEB服务器,如IIS、apache。 WEB服务器与客户端打交道,它要处理的主要信息有:session、request、response、HTML、JS、C

2016-08-05 18:07:47 4704

原创 Mysql Join语法解析与性能分析

一.Join语法概述join 用于多表中字段之间的联系,语法如下:... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON conditionatable1:左表;table2:右表。JOIN 按照功能大致分为如下三类:INNER JOIN(内连接,或等值连接):取得两个表中存在连接匹配关系的记录。LEFT JOIN(左连接):取得左表

2016-08-03 12:04:46 1153

转载 java.util.concurrent JAVA并发指南

1、阻塞队列  BlockingQueue接口BlockingQueue 通常用于一个线程生产对象,而另外一个线程消费这些对象的场景。一个线程将会持续生产新对象并将其插入到队列之中,直到队列达到它所能容纳的临界点。也就是说,它是有限的。如果该阻塞队列到达了其临界点,负责生产的线程将会在往里边插入新对象时发生阻塞。它会一直处于阻塞之中,直到负责消费的线程从队列中拿走一个对象。

2016-07-24 22:21:50 1348 1

原创 java synchronized 使用

synchronized 的语法:synchronized 可以作为一个method的修饰符,也可以一段代码里出现,先说在代码里出:  其语法是   synchronized(xx) {    //your code   }   这个xx需要是一个Object,只要是一个Object就行,如:        String s="haha";        synch

2016-07-13 11:09:09 453

原创 分布式缓存中间件:Redis

Redis是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key-value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。  1. 按照我们一般的使用Redis的场景应该是这样的:  也就是说:我们会先去redis中判断数据是否存在,如果存

2016-05-27 18:39:11 2920

原创 信息加密技术及密钥安全管理

1、单向散列加密     单向散列加密是通过对不同输入长度的信息进行散列计算,得到固定长度的输出,单向的(不可逆)。     用户的密码通过此加密将密文存在数据库当中,登录时根据用户输入的密码进行加密后与数据库中的密文进行对比。     这样即使平台数据库被“拖库”,也不会造成用户的密码泄漏。     代表:MD5算法     SHA算法 MD5功能:    输入任意长

2016-05-24 12:07:59 14636 1

原创 大型网站技术架构 学习总结二(大型网站架构模式)

1、分层   应用层    服务层     数据层   通过分层,方便分工合作开发维护;需禁止跨层调用、逆向调用。(横向切分)2、分割    纵向切分,模块之间需低耦合。3、分布式    4、集群     即使访问量很小的分布式应用和服务,也至少部署两台服务器构成一个小的集群,提高系统的可用性(防止一个挂了)。5、缓存     CDN

2016-05-23 11:32:18 692

原创 大型网站技术架构 学习总结一(基础了解)

1、大型网站软件系统的特点      高并发、高可用(7*24)、海量数据、用户分布广泛网络情况复杂、安全环境恶劣、需求更新快、渐进式发展。2、应用服务和数据服务分离      客户量大的时候,单独一台服务器无法满足需求,因此需要应用服务和数据服务分离。      分离后,整个网站使用三台服务器:应用服务器,文件服务器,数据库服务器。          应用服务器:

2016-05-20 17:22:37 1835

原创 REST中 @POST & @PUT 区别

首先解释幂等,幂等是数学的一个用语,对于单个输入或者无输入的运算方法,如果每次都是同样的结果,则称其是幂等的。对于两个参数,如果传入值相等,结果也等于每个传入值,则称其为幂等的,如min(a,b)。POST用于提交请求,可以更新或者创建资源,是非幂等的举个例子,在我们的支付系统中,一个api的功能是创建收款金额二维码,它和金额相关,每个用户可以有多个二维码,如果连续调用则会创建

2016-05-18 17:12:29 9871

转载 JVM讲解

来源:http://blog.csdn.net/zchlww/article/details/51394139本人备存,方便自己学习。简单通俗的讲,一个完整的Java程序运行过程会涉及以下内存区域:l 寄存器:JVM内部虚拟寄存器,存取速度非常快,程序不可控制。l 栈:保存局部变量的值,包括:1.用来保存基本数据类型的值;2.保存类的实例,即堆区

2016-05-13 15:10:08 901

原创 深入理解Java虚拟机学习总结(一) 自动内存管理机制

1、java技术体系:主要五类如下     java语言        各种硬件平台上的java虚拟机    class文件格式    java  API类库    第三方java类库    java card    JAVA ME(J2ME)    JAVA SE(standard edition)    JAVA EE(enterprise edit

2016-05-11 14:23:34 841

空空如也

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

TA关注的人

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