摘要:异常指的是运行期出现的错误,也就是当程序开始执行以后执行期出现的错误。出现错误时观察错误的名字和行号最为重要 小结: 异常是运行期间出现的错误,运行期间出现错误以后JAVA处理这种错误的方式是首先会找相应的catch代码,看看有没有使用catch去捕获异常,如果有catch存在,那么JAVA就会自动
阅读全文
摘要:1 IoC容器的概念 IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中BeanFactory是IoC容器的实际代表者。 Spring IoC容器如何知
阅读全文
摘要:1 安装Tomcat前需要先安装JDK。安装Tomcat后测试Tomcat成功安装。 Tomcat Manager是Tomcat自带的、用于对Tomcat自身以及部署在Tomcat上的应用进行管理的web应用。在默认情况下,Tomcat Manager是处于禁用状态的。 准确地说,Tomcat Ma
阅读全文
摘要:你用杯子喝可乐,喝完了不刷,继续去倒果汁喝,就是单例。你用杯子喝可乐,直接扔了杯子,换个杯子去倒果汁喝,就是多例。 数据库连接池就是单例模式,有且仅有一个连接池管理者,管理多个连接池对象。 1. 什么是单例多例:所谓单例就是所有的请求都用一个对象来处理,比如我们常用的service和dao层的对象通
阅读全文
摘要:一. 如何初始化redis的密码? 总共2个步骤: a.在配置文件中有个参数: requirepass 这个就是配置redis访问密码的参数。 比如 requirepass test123 b.配置文件中参数生效需要重启重启redis 。 二.不重启redis如何配置密码? a. 在配置文件中配置r
阅读全文
摘要:一.早期我们怎么进行数据库操作 1.原理:一般来说,java应用程序访问数据库的过程是: ①装载数据库驱动程序; ②通过jdbc建立数据库连接; ③访问数据库,执行sql语句; ④断开数据库连接。 2.代码 // 查询所有用户 [java] view plain copy print? Public
阅读全文
摘要:为redis分配一个8888端口,操作步骤如下: 1、$REDIS_HOME/redis.conf重新复制一份,重命名为redis8888.conf。 2、打开redis8888.conf配置文件,找到port 6379这行,把6379改为8888。 3、把redis8888.conf移到$REDI
阅读全文
摘要:通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。 Redis 优势 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。 丰富的数据
阅读全文
摘要:Spring 的骨骼架构 Spring 总共有十几个组件,但是真正核心的组件只有几个,下面是 Spring 框架的总体架构图: 从上图中可以看出 Spring 框架中的核心组件只有三个:Core、Context 和 Beans。它们构建起了整个 Spring 的骨骼架构。没有它们就不可能有 AOP、
阅读全文
摘要:Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 在这篇由三部分组成的 Spring 系列 的第 1 部分中,我将介绍 Spring 框架。我先从框架底层模型的角
阅读全文
摘要:门面设计模式 门面设计模式在 Tomcat 中有多处使用,在 Request 和 Response 对象封装中、Standard Wrapper 到 ServletConfig 封装中、ApplicationContext 到 ServletContext 封装中等都用到了这种设计模式。 门面设计模
阅读全文
摘要:介绍使用 Tomcat 对 JavaServer Pages (JSP)、servlet 和 Web 服务进行编程,Tomcat 是来自 Apache Foundation 的开源应用服务器。本教程引导您完成以下任务: 下载和安装您自己的 Tomcat 服务器。 在 Tomcat 上编码和部署 JS
阅读全文
摘要:从 Tomcat 如何分发请求、如何处理多用户同时请求,还有它的多级容器是如何协调工作的角度来分析 Tomcat 的工作原理,这也是一个 Web 服务器首要解决的关键问题 Tomcat 总体结构 Tomcat 的结构很复杂,但是 Tomcat 也非常的模块化,找到了 Tomcat 最核心的模块,您就
阅读全文
摘要:简单工厂模式是类的创建模式,又叫做静态工厂方法(Static Factory Method)模式。简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。 为什么要使用简单工厂模式 原因很简单:解耦。 A对象如果要调用B对象,最简单的做法就是直接new一个B出来。这么做有一个问题,假如C类和B类实
阅读全文
摘要:Apache iBatis(现已迁至Google Code下发展,更名为MyBatis)是当前IT项目中使用很广泛的一个半自动ORM框架,区别于Hibernate之类的全自动框架,iBatis对数据库的操作拥有更加灵活的控制,对于那些经常需要调用本地数据库函数自定义SQL语句,或是喜欢自己优化SQL
阅读全文
摘要:java多态,如何理解父类引用指向子类对象 要理解多态性,首先要知道什么是“向上转型”。 我定义了一个子类Cat,它继承了Animal类,那么后者就是前者是父类。我可以通过 Cat c = new Cat(); 实例化一个Cat的对象,这个不难理解。 但当我这样定义时: Animal a = new
阅读全文
摘要:一、普通代码块 直接在一个方法中出现的{}就称为普通代码块,例子程序如下: public class CodeDemo01{ public static void main(String[] args){ //普通代码块 { int x = 10; System.out.println("x=" +
阅读全文
摘要:String a = "Hello"; String b = "Hello"; String c = new String("Hello"); String d = new String("Hello"); System.out.println(a == b); System.out.println
阅读全文
摘要:Java中父类的静态方法确实不能被重写的,但是有的人可能去做实验发现在子类中去重写父类static方法时,并没什么问题。这里我来具体解释下。 public class Parent { public static void add(){ System.out.println(" Parent");}
阅读全文
摘要:要求:有两个数组一个N 个元素,另一个M 个元素,这两个数组中有些元素是相同的,希望通过编写一段程序将两个数组中的相同元素找出来,请用最少的循环次数完成需求,请问需要用什么方法? string[] str1 = { "1", "2", "3", "4", "5", "6" }; string[] s
阅读全文
摘要:在用PL/SQL Developer连接数据库时出现“ORA-12541:TNS:无监听程序”错误。 1、检查listener.log日志发现下面错误:TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production on 20-9月 -2008
阅读全文
摘要:spring项目中,Aop的Advice执行了两边,就好像拦截了两遍一样。 原因是:切面应该切到接口的实现类上,而不是接口上
阅读全文
摘要:java用 @interface Annotation{ } 定义一个注解 @Annotation,一个注解是一个类。@Override,@Deprecated,@SuppressWarnings为常见的3个注解。注解相当于一种标记,在程序中加上了注解就等于为程序加上了某种标记,以后,JAVAC编译
阅读全文
摘要:之前遇到一个很有意思的问题:我需要批量重定义特定类型的由Spring容器托管的Bean。具体体现在,我有很多控制器类(Controller)和校验器类(Validator),我希望他们都是多例(Prototype)的,而Spring默认创建实例是单例(Singleton)的。有朋友可能要问:为什么不
阅读全文
摘要:使用注解主要是在需要使用Spring框架的时候,特别是使用SpringMVC。因为这时我们会发现它的强大之处:预处理。 注解实际上相当于一种标记,它允许你在运行时(源码、文档、类文件我们就不讨论了)动态地对拥有该标记的成员进行操作。 实现注解需要三个条件(我们讨论的是类似于Spring自动装配的高级
阅读全文
摘要:基数排序(radix sort)又称“桶子法”,在对多个正整数进行排序时可以使用。它的灵感来自于队列(Queue),它最独特的地方在于利用了数字的有穷性(阿拉伯数字只有0到9的10个)。 基数排序使用11个动态数组实现排序算法,一个主队列(下文都将使用的动态数组称为队列)存储未排序的数据(最后排序完
阅读全文
摘要:1.选择器 (1)通配符: $("input[id^='code']");//id属性以code开始的所有input标签 $("input[id$='code']");//id属性以code结束的所有input标签 $("input[id*='code']");//id属性包含code的所有inpu
阅读全文
摘要:进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1. 计算机的核心是CPU,它承担了所有的计算任务。它就像一座工厂,时刻在运行。 2. 假定工厂的电力有限,一次只能供给一个车间使
阅读全文
摘要:Java序列化算法透析 Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。Java序列化API提供一种处理对象序列化的标准机制。在这里你能学到如何序列化一个对象,什么时候需要序列化以及Java序列化的
阅读全文
摘要:问题在详细介绍ibatis参数和结果映射原理之前,让我们先来思考几个问题。1. 为什么需要参数和结果的映射?相对于全自动的orm,ibatis一个重要目标是,通过维护POJO与SQL之间的映射关系,让我们执行 SQL时对输入输出的数据管理更加方便。也就是说,ibatis并不会为程序员在运行期自动生成
阅读全文
摘要:ibatis的技术是从xml里面字符串转换成JAVA对象,对象填充JDBC的statement查询,然后从resultset取对象返回,另外利用ThreadLocal实现线程安全,JDBC保证了事务控制,cache(三方库)实现缓存的dao框架。 各大包结构和作用: 1,accessplan— 2,
阅读全文
摘要:问题在详细介绍ibatis初始化过程之前,让我们先来思考几个问题。1. ibatis初始化的目标是什么?上文中提到过,ibatis初始化的核心目标是构造SqlMapClientImpl对象,主要是其内部重要属性delegate这个代理对象的初始化。delegate这个对象耦合了用户端的操作行为和执行
阅读全文
摘要:背景介绍ibatis实现之前,先来看一段jdbc代码: Java代码 Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/learnworld"; Connection con = Dri
阅读全文
摘要:应该说设计模式是我们在写代码时候的一种被承认的较好的模式,就像一种宗教信仰一样,大多数人承认的时候,你就要跟随,如果你想当一个社会存在的话。好的设计模式就像是给代码造了一个很好的骨架,在这个骨架里,你可以知道心在哪里,肺在哪里,因为大多数人都认识这样的骨架,就有了很好的传播性。这是从易读和易传播来感
阅读全文
摘要:首先举一个简单的例子,如果你想实现一个接口,但是这个接口中的一个方法和你构想的这个类中的一个方法的名称,参数相同,你应该怎么办?这时候,你可以建一个内部类实现这个接口。由于内部类对外部类的所有内容都是可访问的,所以这样做可以完成所有你直接实现这个接口的功能。不过你可能要质疑,更改一下方法的不就行了吗
阅读全文
摘要:DOM树 首先,可视化一个HMTL文档的DOM树是很有帮助的。一个简单的HTML页面看起来就像是这个样子: 事件冒泡(又称事件传播) 当我们点击一个链接时,其触发了链接元素的单击事件,该事件则引发任何我们已绑定到该元素的单击事件上的函数的执行。 复制代码 代码如下: $('a').bind('cli
阅读全文
摘要:只要是会java的都知道++和—操作符的用法,如 int i = 1; int j = i++; int k = ++i; 结果i为3,j为1,k为3。 那如下代码: int j = 0; for (int i = 0; i < 100; i++) { j = j++; } System.out.p
阅读全文
摘要:有4种显式地创建对象的方式: 1.用new语句创建对象,这是最常用的创建对象的方式。 2.运用反射手段,调用java.lang.Class或者java.lang.reflect.Constructor类的newInstance()实例方法。 3.调用对象的clone()方法。 4.运用反序列化手段,
阅读全文
摘要:1.条件断点 如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建。在调试界面中,“断点”视图会把所有被创建的断点列出来。我们可以给它加一个布尔条件,也就是说,该断点会被激活并且如果布尔条件为真,就会执行该断点,否则将会跳过往下执行。 2.异常断点 在断点视图中,有一个J!标记按钮!我
阅读全文
摘要:读取.properties配置文件在实际的开发中使用的很多,总结了一下,有以下几种方法(仅仅是我知道的):一、通过jdk提供的java.util.Properties类。此类继承自java.util.HashTable,即实现了Map接口,所以,可使用相应的方法来操作属性文件,但不建议使用像put、
阅读全文
摘要:有时候,我们需要把Java对象转换成XML文件。这时可以用JAXB来实现。(JDK1.6及以后的版本无需导入依赖包,因为已经包含在JDK里了) 假如某个公司有许多部门,每个部门有许多职员,我们可以这样来设计简单的bean对象。 [java] view plain copy @XmlRootEleme
阅读全文
摘要:package test1; public class Test2 { /*** @param args*/public static void main(String[] args) { Float xx = 2.0f; Float yy = 1.8f; Float tt = xx - yy; S
阅读全文
摘要:进入正题前首先要知道的是Java程序运行在JVM(Java Virtual Machine,Java虚拟机)上,可以把JVM理解成Java程序和操作系统之间的桥梁,JVM实现了Java的平台无关性,由此可见JVM的重要性。所以在学习Java内存分配原理的时候一定要牢记这一切都是在JVM中进行的,JV
阅读全文
摘要:流程: 1. StrutsPrepareAndExcuteFilter:StrutsPrepareAndExcuteFilter作为前端控制器,是整个Struts2的调度中心。 2. ActionMapper:ActionMapper负责识别当前的请求是否需要Struts2做出处理。 3. Acti
阅读全文
摘要:Struts2对异常支持(声明式异常、自动的异常处理), 异常处理(运行期异常事务自动回滚) 1. 自定义异常类,继承RuntimeException或Exception实现构造方法. 2. 配置异常:全局页面跳转,与全局异常处理。其他包如果想使用,需要继承。 <global-results> <r
阅读全文
摘要:Struts2的上传 1. Struts2默认采用了apache commons-fileupload 2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload相关依赖包 * commons-io-1.3.2.jar * commons-fileupload-1
阅读全文
摘要:Struts2登录 1. 需要注意:Struts2需要运行在JRE1.5及以上版本 2. 在web.xml配置文件中,配置StrutsPrepareAndExecuteFilter或FilterDispatcher 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 <filte
阅读全文
摘要:1. 为什么使用Spring ? 1). 方便解耦,简化开发 通过Spring提供的IoC容器,可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。 2). AOP编程的支持 通过Spring提供的AOP功能,方便进行面向切面的编程,如性能监测、事务管理、日志记录等。
阅读全文
摘要:目前企业中使用SpringMvc的比例已经远远超过Struts2,那么两者到底有什么区别,是很多初学者比较关注的问题,下面我们就来对SpringMvc和Struts2进行各方面的比较: 1.核心控制器(前端控制器、预处理控制器):对于使用过mvc框架的人来说这个词应该不会陌生,核心控制器的主要用途是
阅读全文
摘要:1. AspectJ 支持 5 种类型的通知注解: @Before: 前置通知, 在方法执行之前执行 @After: 后置通知, 在方法执行之后执行 @AfterRunning: 返回通知, 在方法返回结果之后执行 @AfterThrowing: 异常通知, 在方法抛出异常之后 @Around: 环
阅读全文
摘要:面向方面的编程,即 AOP,是一种编程技术,它允许程序员对横切关注点或横切典型的职责分界线的行为(例如日志和事务管理)进行模块化。AOP 的核心构造是方面, 它将那些影响多个类的行为封装到可重用的模块中。 通常情况下,对于AOP,我们有两种方式来实现。 使用DynamicProxy实现AOP 下面是
阅读全文
摘要:IoC的全称是Inversion of Control,中文称为控制反转, Martin Flower由根据它创造了一个新词:Dependency Injection,中文称为依赖注入。这两个词讲的是一回事儿。 控制反转模式(也称作依赖性介入)的基本概念是:不创建对象,但是描述创建它们的方式。在代码
阅读全文
摘要:IoC(控制反转,(Inversion of Control):本来是由应用程序管理的对象之间的依赖关系,现在交给了容器管理,这就叫控制反转,即交给了IoC容器,Spring的IoC容器主要使用DI方式实现的。 不需要主动查找,对象的查找、定位和创建全部由容器管理 DI(Dependency Inj
阅读全文
摘要:import net.sf.json.JSONArray; import net.sf.json.JSONException; jackson-core-asl-1.7.2.jar jackson-mapper-asl-1.7.2.jar
阅读全文
摘要:在JSONObject获取value有多种方法,如果key不存在的话,这些方法无一例外的都会抛出异常。如果在线环境抛出异常,就会使出现error页面,影响用户体验,针对这种情况最好是使用optXXX方法。getString方法会抛出异常,如下所示: 1 2 3 4 5 6 7 8 9 10 publ
阅读全文
摘要:我们通常对一个json串和java对象进行互转时,经常会有选择性的过滤掉一些属性值。例如下面的类: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 p
阅读全文
摘要:生成JSONObject一般有两种方式,通过javabean或者map类型来生成。如下面的例子: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 public class User { public String username; pub
阅读全文
摘要:json是个非常重要的数据结构,在web开发中应用十分广泛。我觉得每个人都应该好好的去研究一下json的底层实现,需要准备下面的六个jar包:commons-lang-1.0.4.jar commons-collections-2.1.jar commons-beanutils-1.8.0.jar
阅读全文
摘要:在网页中想后台传递多个数据时,有时数据还是多个动态列表,数据很复杂时,JavaScript程序员喜欢把他们作为json串进行处理,后台收到后需要对json字符串进行解析,幸好有JSON-lib,这个Java类包用于把bean,map和XML转换成JSON并能够把JSON转回成bean和DynaBea
阅读全文
摘要:问题2:通常情况下,不加大括号是什么情况?加上又是什么情况,他们的含义是什么,作用是什么, 最近在使用Google的Gson包进行Json和Java对象之间的转化,对于包含泛型的类的序列化和反序列化Gson也提供了很好的支持,感觉有点意思,就花时间研究了一下。 由于Java泛型的实现机制,使用了泛型
阅读全文
摘要:1. 阅读下列代码回答问题(第一个Java程序,理解PATH和CLASSPATH,学会使用javac和java命令) 问: (1)上面代码所在的源文件的文件名是_______________?(2)在DOS提示符下,当前目录为该源文件所在的目录,PATH环境变量已包含编译程序所在的路径,编译目标路径
阅读全文
摘要:日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也
阅读全文
摘要:JAVA相关基础知识1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2.继承:继承是一种联结类的层次模型,并
阅读全文
摘要:1.三者在执行速度方面的比较:StringBuilder > StringBuffer > String 2.String <(StringBuffer,StringBuilder)的原因 String:字符串常量 StringBuffer:字符创变量 StringBuilder:字符创变量 从上面
阅读全文
摘要:开发阶段:发现程序的问题,排错 产品阶段:记录程序运行的状况 Maven中配置依赖 通过配置文件输出日志的格式,输送的位置等 一、入门实例 1.新建一个JAva工程,导入包log4j-1.2.17.jar,整个工程最终目录如下 2、src同级创建并设置log4j.properties 3、设置日志内
阅读全文
摘要:Java 虽然没有动态语言般暴起,但仍然天连天,水接水的生出好多框架技术 反射(reflection),泛型(generics),元数据(annotation),proxies(proxy/cglib),代码动态生成(asm),AOP(aspectJ),动态语言嵌入(groovy/javascrip
阅读全文
摘要:1 资料 JDK5.0垃圾收集优化之--Don't Pause(花钱的年华) 编写对GC友好,又不泄漏的代码(花钱的年华) JVM调优总结 JDK 6所有选项及默认值 2 GC日志打印 GC调优是个很实验很伽利略的活儿,GC日志是先决的数据参考和最终验证: -XX:+PrintGCDetails -
阅读全文
摘要:主要是为了类反射,这样你可以在不知道具体的类的情况下,根据配置的字符串去调用一个类的方法。在灵活编程的时候非常有用。很多框架代码都是这样去实现的。但是一般的编程,你是不需要这样做的,因为类都是你自己写的,怎么调用,怎么生成都是清楚的。
阅读全文
摘要:以下案例模拟AOP实现 目录结构 接口PersonService 实现类PersonServiceBean 动态代理类JDKProxyFactory 动态代理类CGlibProxyFactory:使用CGLIB技术 测试类AopTest 运行结果
阅读全文
摘要:JDK自从1.3版本开始,就引入了动态代理,JDK的动态代理用起来非常简单,但是它有一个限制,就是使用动态代理的对象必须实现一个或多个接口 。如果想代理没有实现接口的类可以使用CGLIB包。 CGLIB是一个强大的高性能的代码生成包。它被许多AOP的框架(例如Spring AOP)使用,为他们提供方
阅读全文
摘要:1.什么是动态代理? 答:动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实。代理一般会实现它所表示的实际对象的接口。代理可以访问实际对象,但是延迟实现实际对象的部分功能,实际对象实现系统的实际功能,代理对象对客户隐藏了实际对象。客户不知道它是与代理打交道还是与实际对象打交道。2.为什么
阅读全文
摘要:JDK动态代理和CGLIB字节码生成的区别? * JDK动态代理只能对实现了接口的类生成代理,而不能针对类 * CGLIB是针对类实现代理,主要是对指定的类生成一个子类,覆盖其中的方法 因为是继承,所以该类或方法最好不要声明成final
阅读全文
摘要:选定类型后不可更改 企业号与服务号,订阅号的区别 公众号微信注册流程: 个人就选择订阅号 外网映射 必须要使用映射工具将本地的地址映射到公网上去 介绍一个ngrok 首先下载ngork,例如保存在D盘下 打开cmd,进行dos操作 如果输入ngrok 8080映射到的是国外的网站,速度会很慢甚至无法
阅读全文
摘要:<!-- 配置事务管理器 --> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource">
阅读全文
摘要:那么当我们调用Service层的一个方法的时候它能够保证我们的这个方法中执行的所有的对数据库的更新操作保持在一个事务中,在事务层里面调用的这些方法要么全部成功,要么全部失败。那么事务的传播特性也是从这里说起的。 如果你在你的Service层的这个方法中,除了调用了Dao层的方法之外,还调用了本类的其
阅读全文
摘要:总结如下: Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比
阅读全文
摘要:之前在做项目中遇到spring无法进行事务代理问题,最后发现是因为没有写接口,原因当时明白了,看到这篇文章写的清楚些,转过来 我们先来分析一下Spring事务管理机制的实现原理。由于Spring内置AOP默认使用动态代理模式实现,我们就先来分析一下动态代理模式的实现方 法。动态代理模式的核心就在于代
阅读全文
摘要:在Java中通常要比较两个对象在修改前与修改后的值是否相同,一般我们采用的是反射技术获取对象的get方法[或其他的方法]获取值并做比较。如果系统将修改的属性名称也显示出来,这样就能更直观的显示类中的哪一个属性的值被修改了。然后Java中只能获取属性的名称,也就是英文标识的属性名,但是一般我们都会在属
阅读全文
摘要:redis存储方式有很多种,但是我个人觉得最好用的并非是String存储类型,而是Hash存储类型,如果在使用redis的时候单纯的只使用到String存储类型的话,我个人觉得完全体现不了redis的特性。 redis 是一个key-value数据库,但在我看来他并不是单纯的key-value数据库
阅读全文
摘要:#最常用配置#initialPoolSize:连接池初始化时创建的连接数,default : 3,取值应在minPoolSize与maxPoolSize之间 c3p0.initialPoolSize=10 #minPoolSize:连接池保持的最小连接数,default : 3 c3p0.minPo
阅读全文
摘要:主要讲解自动扫描的<context:component-scan>中的2个子标签的使用方法 在Spring MVC中的配置中一般会遇到这两个标签,作为<context:component-scan>的子标签出现。 但在使用时要注意一下几点: 1.在很多配置中一般都会吧Spring-common.xm
阅读全文
摘要:当我们需要使用BeanPostProcessor时,直接在Spring配置文件中定义这些Bean显得比较笨拙,例如: 使用@Autowired注解,必须事先在Spring容器中声明AutowiredAnnotationBeanPostProcessor的Bean: 使用 @Required注解,就必
阅读全文
摘要:isNull判断property字段是否是null,用isEmpty更方便,包含了null和空字符串 例子一:isEqual相当于equals,数字用得多些,一般都是判断状态值<isEqual property="state" compareValue="0">< /isEqual>或<isEqua
阅读全文
摘要:1、订阅号与服务号的主要区别是什么?订阅号每天能群发一条消息,没有自定义菜单及高级接口权限(目前 个人、企业订阅号关联腾讯微博认证之后才有自定义菜单);服务号有自定义菜单微信认证之后有高级接口权限,但每月只能群发一条消息。 2、到底该申请订阅号还是服务号?申请哪种类型的公众账号,主要取决于账号的用途
阅读全文
摘要:最近在做一个java web service项目,需要用到jason,本人对java不是特别精通,于是开始搜索一些java平台的json类库。 发现了google的gson,因为之前对于protocolbuf有一些了解,带着一些好奇心,我开始使用了gson。 经过比较,gson和其他现有java j
阅读全文
摘要:目前移动开发处于比较火的的趋势,很多的开发者都跃跃欲试,目前移动App开发领域主要分为以下几种类型 我在平时的工作中接触得比较多的就是基于Android的Native App开发和基于微信公众号的Light App开发,今天就来带领大家快速进入微信公众号的开发领域. 一、微信开发环境搭建 工欲善其事
阅读全文
摘要:一、对象转型介绍 对象转型分为两种:一种叫向上转型(父类对象的引用或者叫基类对象的引用指向子类对象,这就是向上转型),另一种叫向下转型。转型的意思是:如把float类型转成int类型,把double类型转成float类型,把long类型转成int类型,这些都叫转型。把一种形式转成另外一种形式就叫转型
阅读全文
摘要:一、Object类介绍 Object类在JAVA里面是一个比较特殊的类,JAVA只支持单继承,子类只能从一个父类来继承,如果父类又是从另外一个父类继承过来,那他也只能有一个父类,父类再有父类,那也只能有一个,JAVA为了组织这个类组织得比较方便,它提供了一个最根上的类,相当于所有的类都是从这个类继承
阅读全文
摘要:一、equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public static void main(String[] args) { 5 /** 6 * 这里使用构造方
阅读全文
摘要:静态变量和静态方法 static关键字最基本的用法是: 1、被static修饰的变量属于类变量,可以通过类名.变量名直接引用,而不需要new出一个类来 2、被static修饰的方法属于类方法,可以通过类名.方法名直接引用,而不需要new出一个类来 被static修饰的变量、被static修饰的方法统
阅读全文
摘要:final关键字的作用 相信对于final的用法,大多数人都可以随口说出三句话: 1、被final修饰的类不可以被继承 2、被final修饰的方法不可以被重写 3、被final修饰的变量不可以被改变 重点就是第三句。被final修饰的变量不可以被改变,什么不可以被改变呢,是变量的引用?还是变量里面的
阅读全文
摘要:一、JAVA流式输入/输出原理 流是用来读写数据的,java有一个类叫File,它封装的是文件的文件名,只是内存里面的一个对象,真正的文件是在硬盘上的一块空间,在这个文件里面存放着各种各样的数据,我们想读文件里面的数据怎么办呢?是通过一个流的方式来读,咱们要想从程序读数据,对于计算机来说,无论读什么
阅读全文
摘要:一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。 数组的元素可以是任何数据类型,包括基本类型和引用类型。 C和C++中的数组都可以分配在栈上面,而JAVA中的数组是只能分配在堆上面的,因
阅读全文
摘要:一、抽象类介绍 下面通过一下的小程序深入理解抽象类 因此在类Animal里面只需要定义这个enjoy()方法就可以了,使用abstract关键字把enjoy()方法定义成一个抽象方法,定义如下:public abstract void enjoy(); 从某种意义上来说,抽象方法就是被用来重写的,所
阅读全文
摘要:ArrayList与LinkedList的普通for循环遍历 对于大部分Java程序员朋友们来说,可能平时使用得最多的List就是ArrayList,对于ArrayList的遍历,一般用如下写法: 如果以后要用到LinkedList了,可能有些朋友就会用一样的方式去遍历LinkedList了: 请记
阅读全文
摘要:40个问题汇总 1、多线程有什么用? 一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然","会用"只是"知其然","为什么用"才是"知其所以然",只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说
阅读全文
摘要:堆溢出 Java堆唯一的作用就是存储对象实例,只要保证不断创建对象并且对象不被回收,那么对象数量达到最大堆容量限制后就会产生内存溢出异常了。所以测试的时候把堆的大小固定住并且让堆不可扩展即可。测试代码如下 运行结果 这种异常很常见,也很好发现,因为都提示了“Java heap space”了,定位问
阅读全文
摘要:(1)-Xms20M 表示设置堆容量的最小值为20M,必须以M为单位 (2)-Xmx20M 表示设置堆容量的最大值为20M,必须以M为单位。将-Xmx和-Xms设置为一样可以避免堆自动扩展。大的项目-Xmx和-Xms一般都要设置到10G、20G甚至还要高 (3)-verbose:gc 表示输出虚拟机
阅读全文
摘要:1、计算机存储单位 从小到大依次为位Bit、字节Byte、千字节KB、兆M、千兆GB、TB,相邻单位之间都是1024倍,1024为2的10次方,即 1Byte = 8bit,1K = 1024Byte,1M = 1024K,1G = 1024M,1T = 1024G 2、计算机存储元件 寄存器:中央
阅读全文
摘要:1 alt + / 提示 2 ctrl + shift + g 查找方法被谁调用 3 ctrl + t 查看某个类的继承关系 4 alt + 上/下 移动当前行上或者下 5 ctrl + / 行注释 shift + ctrl + / 块注释 6 方法或者类名输入 :/** 自动生成文档注释 7 ct
阅读全文
摘要:JavaScript pow() 方法 pow() 方法可返回 x 的 y 次幂的值 语法 返回值 x 的 y 次幂。 说明 如果结果是虚数或负数,则该方法将返回 NaN。如果由于指数过大而引起浮点溢出,则该方法将返回 Infinity。 实例 在下面的例子中,我们将把 pow() 运用到不同的数字
阅读全文
摘要:1、‘debugger;’ 除了console.log,debugger就是另一个我很喜欢的快速调试的工具,将debugger加入代码之后,Chrome会自动在插入它的地方停止,很像C或者Java里面打断点。你也可以在一些条件控制中插入该调试语句,譬如: 2、将Objects以表格形式展示 有时候我
阅读全文
摘要:html 锚点 到底是干吗的?通俗简单地说,比如一篇很长的文章,你想按分段精确来看,那就可以用到锚点了。 代码:<a href="#001">跳到001</a>…文字省略<a name="001" id="001" ></a>…文字省略 其实锚点只需name就可以可,加id是为了让它兼容性更好.hr
阅读全文
摘要:一、前言: 大家好,Spring3 MVC是非常优秀的MVC框架,由其是在3.0版本发布后,现在有越来越多的团队选择了Spring3 MVC了。Spring3 MVC结构简单,应了那句话简单就是美,而且他强大不失灵活,性能也很优秀。 官方的下载网址是:http://www.springsource.
阅读全文
摘要:第一方面:开发速度的对比 就开发速度而言,Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 比起两者的开发速度,不仅仅要考虑到两者的特性及性能,更要根据项目需求去考虑究竟哪
阅读全文
摘要:1.在web.xml中加入一个过滤器和过滤范围的配置 <filter><filter-name>encoding</filter-name><filter-class>com.guet.cab.base.Filter.EncodingFilter</filter-class></filter><fi
阅读全文
摘要:1. 前言 基于Maven的开发方式开发项目已经成为主流。Maven能很好的对项目的层次及依赖关系进行管理。方便的解决大型项目中复杂的依赖关系。S2SH(Struts2+Spring+Hibernate)框架是目前进行WEB项目开发中非常流行的一个组合。基于作者对于这个三个框架的了解及其相关的开发经
阅读全文
摘要:SSH框架中使用log4j的方便之处 1. 动态的改变记录级别和策略,即修改log4j.properties,不需要重启Web应用,这需要在web.xml中设置一下。2. 把log文件定在 /WEB-INF/logs/ 而不需要写绝对路径。3. 可以把log4j.properties和其他prope
阅读全文
摘要:环境配置 项目使用SSH架构,现在要添加Spring事务管理功能,针对当前环境,只需要添加Spring 2.0 AOP类库即可。添加方法: 点击项目右键->Build Path->Add librarys: 打开Add Libraries对话框,然后选定 MyEclipse Libraries: 点
阅读全文
摘要:第一种关联关系:一对多(多对一) "一对多"是最普遍的映射关系,简单来讲就如消费者与订单的关系。 一对多:从消费者角的度来说一个消费者可以有多个订单,即为一对多。 多对一:从订单的角度来说多个订单可以对应一个消费者,即为多对一。 一对多关系在hbm文件中的配置信息: 消费者(一方): 订单(多方):
阅读全文
摘要:1. 递归查询树tree结构有两种做法: 第一种,递归查询数据库结构, 第二种,一次性将数据库表中的所有数据查出来,然后再递归查出来的list集合, 第一种做法适合数据量较少的tree结构,因为要一直查询数据库数据量大时速度回相对较慢,所以数据量大时建议使用第二种方法,如图1所示是一个常见的树tre
阅读全文
摘要:日常操作中常见的排序方法有:冒泡排序、快速排序、选择排序、插入排序、希尔排序,甚至还有基数排序、鸡尾酒排序、桶排序、鸽巢排序、归并排序等。 冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也
阅读全文
摘要:package com.jackey.topic; import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;imp
阅读全文
摘要:import java.util.*; public class object { public static void main(String[] args) { String str1 = new String("abcde"); String str2 = new String("abcde"
阅读全文
摘要:目录(?)[-] 1 引子 2JAVA异常 4处理异常机制 1 捕获异常trycatch 和 finally try-catch语句 trycatch-finally语句 try-catch-finally 规则异常处理语句的语法规则 trycatchfinally语句块的执行顺序 2 抛出异常 t
阅读全文
摘要:1. 解决实例化时自动补全不必要的单词问题 2. 以MyEclipse 6.5重新配图 鉴 于网上的批评之声甚大,我只想说明我的想法:这样的增强代码提示,最终是用来辅助我们开发的,提高开发效率的,而不是用来满足“不用敲那么多的代码”的偷 懒行为的。初学者,可以通过提示,获得一些容易忘记的包名、容易忘
阅读全文
摘要:[java] view plain copy [java] view plain copy [java] view plain copy package com.util; import java.text.DateFormat; import java.util.Calendar; import
阅读全文
摘要:1.计算某一月份的最大天数 1Calendar time=Calendar.getInstance();2time.clear();3time.set(Calendar.YEAR,year); //year 为 int 4time.set(Calendar.MONTH,i-1);//注意,Calen
阅读全文
摘要:J2EE项目异常处理 为什么要在J2EE项目中谈异常处理呢?可能许多java初学者都想说:“异常处理不就是try….catch…finally吗?这谁都会啊!”。笔者在初学java时也是这样认为的。如何在一个多层的j2ee项目中定义相应的异常类?在项目中的每一层如何进行异常处理?异常何时被抛出?异常
阅读全文
摘要:版权声明:本文为博主原创文章,未经博主允许不得转载。 版权声明:本文为博主原创文章,未经博主允许不得转载。 目录(?)[-] 为什么需要并发 误解和正解 并发编程的原则和技巧 单一职责原则 限制数据作用域 使用数据副本 线程应尽可能独立 Java 5以前的并发编程 Java 5的并发编程 原子类 显
阅读全文
摘要:@Testpublic void removeElementFromMap(){Map<Integer, String> test = new HashMap<Integer, String>();test.put(1, "a");test.put(2, "b");test.put(3, "c");
阅读全文
摘要:前段时间细节的了解了Jedis的使用,Jedis是redis的java版本的客户端实现。本文做个总结,主要分享如下内容: 【pipeline】【分布式的id生成器】【分布式锁【watch】【multi】】【redis分布式】好了,一个一个来。一、 Pipeline官方的说明是:starts a pi
阅读全文
摘要:程序就是输入——>处理——>输出。对数据的处理是程序员需要着重注意的地方,快速、高效的对数据进行处理时我们的追求。其中,时间日期的处理又尤为重要和平凡,此次,我将把Java中的时间日期处理方式进行简单的解析,为自己以后的学习做一个备忘,也为初学者做一个借鉴。 时间,英文Time;日期,英文Date;
阅读全文
摘要:一个人对事情不论是好是坏、是对是错,嘴里不要乱说,肚子里明白就好。嘴巴叨叨不休,无事也会变成有事,最后总是会害到自己。那些没事叨叨的人切要注意,这样最会惹事。 别人的行为好,我们心里不起欢喜贪着心;行为不好,也不起憎恶心,要好好按耐这个心,不起烦恼。别人不好,别人的习气,那是别人的事,如果我们拿来起
阅读全文
摘要:Thread类中的方法调用方式: 学习Thread类中的方法是学习多线程的第一步。在学习多线程之前特别提出一点,调用Thread中的方法的时候,在线程类中,有两种方式,一定要理解这两种方式的区别: 1、this.XXX() 这种调用方式表示的线程是线程实例本身 2、Thread.currentThr
阅读全文
摘要:进程和线程 谈到多线程,就得先讲进程和线程的概念。 进程 进程可以理解为受操作系统管理的基本运行单元。360浏览器是一个进程、WPS也是一个进程,正在操作系统中运行的".exe"都可以理解为一个进程 线程 进程中独立运行的子任务就是一个线程。像QQ.exe运行的时候就有很多线程子任务在运行,比如聊天
阅读全文
摘要:随着工作的深入,越来越感觉对于Maven的理解不够,很多时候使用Maven出了问题都无法很快地解决,因此打算深入地从搭建Maven工程开始学习一下Maven,这篇文章就将自己的学习历程记录下来和网友朋友们分享。 从搭建最简单的Maven项目开始 LZ使用的是MyEclipse,那么就是用MyEcli
阅读全文
摘要:什么是Maven Maven,鼎鼎大名,在今天之前,我对于它一直是处于一种"只闻其名不见其人"的状态。之所以说"只闻其名",是因为Maven太有名了,它是Apache基金会的顶级项目,一般情况下,被Apache看中的都是精品。之所以说"不见其人",是因为之前的工作中不需要使用到Maven,因此对Ma
阅读全文
摘要:问题的提出 在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。 1、火车站售票 假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行 一切似乎都是那么和谐。想象一下,如果他选择的目的
阅读全文
摘要:前言 随着计算机系统规模变得越来越大,将所有业务单元集中部署在一个或者若干个大型机上的体系结构物,已经越来越不能满足当今计算机系统,尤其是大型互联网系统的快速发展,各种灵活多变的系统架构模型层出不穷。同时,随着微型计算机的出现,越来越多廉价的PC机成为了各大IT企业架构的首选,分布式的处理方式越来越
阅读全文
摘要:前言 数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySql的核心就是存储引擎。
阅读全文
摘要:一、MySQL 获得当前日期时间 函数1.1 获得当前日期+时间(date + time)函数:now()mysql> select now();+ +| now() |+ +| 2008-08-08 22:20:46 |+ +除了 now() 函数能获得当前的日期时间外,MySQL 中还有下面的函
阅读全文
摘要:一旦成功地从表中检索出数据,就需要进一步操纵这些数据,以获得有用或有意义的结果。这些要求包括:执行计算与数学运算、转换数据、解析数值、组合值和聚合一个范围内的值等。 下表给出了T-SQL函数的类别和描述。 函数类别 作用 聚合函数 执行的操作是将多个值合并为一个值。例如 COUNT、SUM、MIN
阅读全文
摘要:前言 让我们来看一下Java的广告词,来自http://www.java.com/zh_CN/about/: 97%的企业桌面运行Java 美国有89%的桌面(或计算机)运行Java 全球有900万Java开发人员 开发人员的头号选择 排名第一的部署平台 有30亿部移动电话运行Java 100%的蓝
阅读全文
摘要:设计模式是什么 设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易地被他人理解、保证代码可靠性。毫无疑问,设计模式于己于人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石脉络,
阅读全文
摘要:为什么服务器尤其大型服务器都使用Linux系统 服务器尤其是大型服务器一般都使用Linux系统,有以下几点原因: 1、成本低,Linux操作系统是免费的 2、安全性好,Linux采取了许多的安全措施,包括对读写权限控制、带保护的子系统、审计跟踪、核心授权等,为网络多用户环境中的用户提供了必要的安全保
阅读全文
摘要:前言 2016年3月修改,结合自己的工作和平时学习的体验重新谈一下为什么要进行代码优化。在修改之前,我的说法是这样的: 这个观点,在现在看来,是要进行代码优化的一个原因,但不全对。在机械工艺发展的今天,服务器动辄8核、16核,64位CPU,代码执行效率非常高,StringBuilder替换Strin
阅读全文
摘要:上两篇文章讲了HashMap和HashMap在多线程下引发的问题,说明了,HashMap是一种非常常见、非常有用的集合,并且在多线程情况下使用不当会有线程安全问题。 大多数情况下,只要不涉及线程安全问题,Map基本都可以使用HashMap,不过HashMap有一个问题,就是迭代HashMap的顺序并
阅读全文
摘要:前一篇文章讲解了HashMap的实现原理,讲到了HashMap不是线程安全的。那么HashMap在多线程环境下又会有什么问题呢? 几个月前,公司项目的一个模块在线上运行的时候出现了死循环,死循环的代码就卡在HashMap的get方法上。尽管最终发现不是因为HashMap导致的,但却让我重视了Hash
阅读全文
摘要:之前的List,讲了ArrayList、LinkedList,最后讲到了CopyOnWriteArrayList,就前两者而言,反映的是两种思想: (1)ArrayList以数组形式实现,顺序插入、查找快,插入、删除较慢 (2)LinkedList以链表形式实现,顺序插入、查找较慢,插入、删除方便
阅读全文
摘要:第一次见到CopyOnWriteArrayList,是在研究JDBC的时候,每一个数据库的Driver都是维护在一个CopyOnWriteArrayList中的,为了证明这一点,贴两段代码,第一段在com.mysql.jdbc.Driver下,也就是我们写Class.forName("...")中的
阅读全文
摘要:上一篇中讲解了ArrayList,本篇文章讲解一下LinkedList的实现。 LinkedList是基于链表实现的,所以先讲解一下什么是链表。链表原先是C/C++的概念,是一种线性的存储结构,意思是将要存储的数据存在一个存储单元里面,这个存储单元里面除了存放有待存储的数据以外,还存储有其下一个存储
阅读全文
摘要:前言 这个分类中,将会写写Java中的集合。集合是Java中非常重要而且基础的内容,因为任何数据必不可少的就是该数据是如何存储的,集合的作用就是以一定的方式组织、存储数据。这里写的集合,一部分是比较常见的、一部分是不常用但是我个人平时见到过的,一些比较相似的集合(比如HashMap和Hashtabl
阅读全文
摘要:web.xml的作用 web.xml,一个Tomcat工程中最重要的配置文件。web.xml没有其实也可以 只要你确定你的项目里面不需要任何过滤器、监听器、Servlet等等。我试了一下,没有web.xml对那些已经编译成Servlet的jsp页面来说,是不影响正常显示的,但是那些没有编译成Serv
阅读全文
摘要:1.JDK的安装与配置 JDK安装过程和一般的软件安装相类似,以下主要详细介绍安装之后,环境变量需要的设置: a)新建JAVA_HOME变量 新建该变量后,将值设置为JDK的安装路径,例如:C:\jdk1.6 注:该变量主要是因为,很多第三方软件会自动寻找系统中的JAVA_HOME变量,如果没有,则
阅读全文
摘要:一、server端安装 1、下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位win7系统对应的版本: 2、安装 1)解压后将里面所有文件拷贝至redis安装目录: 几个exe程序
阅读全文
摘要:一.JAVA类的定义 JAVA里面有class关键字定义一个类,后面加上自定义的类名即可。如这里定义的person类,使用class person定义了一个person类,然后在person这个类的类体里面定义person这个类应该具有的成员变量(即属性)和方法,如这里定义的int id和int a
阅读全文
摘要:目录 一、面向过程的思想和面向对象的思想 二、简单理解面向对象 三、面向对象的设计思想 四、对象和类的概念 五、如何抽象出一个类? 六、类(对象)之间的关系 七、Java与面向对象 八、为什么使用面向对象编程? 一、面向过程的思想和面向对象的思想 面向对象和面向过程的思想有着本质上的区别, 作为面向
阅读全文
摘要:概述 我们都知道面向对象有四个基本特性:抽象、封装、继承、多态。这四个特性,概括起来可以这么理解,抽象、封装、继承是多态的基础,多态是抽象、封装、继承的表现。多态,是Java中非常重要的一个部分,所以今天来谈一下多态(Polymorphism)。 什么是多态 不同类的对象对同一消息作出不同的响应就叫
阅读全文
摘要:1.语法层面上的区别 1)抽象类可以提供成员方法的实现细节,而接口中只能存在public abstract 方法; 2)抽象类中的成员变量可以是各种类型的,而接口中的成员变量只能是public static final类型的; 3)接口中不能含有静态代码块以及静态方法,而抽象类可以有静态代码块和静态
阅读全文
摘要:接口 接口,英文称作interface,在软件工程中,接口泛指供别人调用的方法或者函数。从这里,我们可以体会到Java语言设计者的初衷,它是对行为的抽象。在Java中,定一个接口的形式如下: [public] interface InterfaceName { } 接口中可以含有 变量和方法。但是要
阅读全文
摘要:对于面向对象编程来说,抽象是它的一大特征之一。在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类。这两者有太多相似的地方,又有太多不同的地方。很多人在初学的时候会以为它们可以随意互换使用,但是实际则不然。今天我们就一起来学习一下Java中的接口和抽象类。下面是本文的目录大纲: 一.抽象类
阅读全文
摘要:MySQL 的SQL性能分析器主要用途是显示SQL执行的整个过程中各项资源的使用情况。分析器可以更好的展示出不良SQL的性能问题所在。mysql sql profile的使用方法1.开启mysql sql profile检查mysql sql profile是否启用mysql> select @@p
阅读全文
摘要:Maven学习总结(一)——Maven入门 一、Maven的基本概念 Maven(翻译为"专家","内行")是跨平台的项目管理工具。主要服务于基于Java平台的项目构建,依赖管理和项目信息管理。 1.1、项目构建 项目构建过程包括【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目
阅读全文
摘要:TortoiseSVN是windows平台下Subversion的免费开源客户端。 一般我们都是先讲讲服务器的配置,然后再讲客户端的使用,但是在TortoiseSVN上,却可以反过来。因为,如果你的要求不高,只是想在本机,或者是可信任的局域网络中使用SVN版本控制,可以不需要安装SVN,而只使用To
阅读全文
摘要:SVN简介: 为什么要使用SVN? 程序员在编写程序的过程中,每个程序员都会生成很多不同的版本,这就需要程序员有效的管理代码,在需要的时候可以迅速,准确取出相应的版本。 Subversion是什么? 它是一个自由/开源的版本控制系统,一组文件存放在中心版本库,记录每一次文件和目录的修改,Subver
阅读全文
摘要:浅拷贝(Object类中的clone()方法)是指在拷贝对象时,对于基本数据类型的变量会重新复制一份,而对于引用类型的变量只是对引用进行拷贝。 深拷贝(或叫深克隆) 则是对对象及该对象关联的对象内容,都会进行一份拷贝。 实体类: 克隆执行类: 测试类: 运行结果:
阅读全文
摘要:摘自:http://blog.csdn.net/tounaobun/article/details/8491392 假如说你想复制一个简单变量。很简单: [java] view plain copy int apples = 5; int pears = apples; [java] view pl
阅读全文
摘要:1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符。 下面用表格的形式来展示四种访问权限之间的异同点,这样会更加形象。表格如下所示: 同一个类 同一个包 不同包的子类 不同包的非子类 Private √ Def
阅读全文
摘要:1.何谓对象? 在Java中有一句比较流行的话,叫做“万物皆对象”,这是Java语言设计之初的理念之一。要理解什么是对象,需要跟类一起结合起来理解。下面这段话引自《Java编程思想》中的一段原话: “按照通俗的说法,每个对象都是某个类(class)的一个实例(instance),这里,‘类’就是‘类
阅读全文
摘要:在初学Java时,可能会经常碰到下面的代码: 1 String str1 = new String("hello"); 2 String str2 = new String("hello"); 3 4 System.out.println(str1==str2); 5 System.out.prin
阅读全文
摘要:在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的)。 在类内部,对于成员变量,如果在定义的时候
阅读全文
摘要:Java后端WebSocket的Tomcat实现 一.WebSocket简单介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信,扩展了浏览器与服务端的通信功能,使服务端也能主
阅读全文