
java
诸秋白
这个作者很懒,什么都没留下…
展开
-
JAVA-Exception
什么是异常?Java代码在运行时期发生的问题就是异常。 在Java中,把异常信息封装成了一个类。当出现了问题时,就会创建异常类对象并>抛出异常相关的信息(如异常出现的位置、原因等)。查看JDKAPI我们可以知道 Throwable 类是 Java 语言中所有错误或异常的超类。只有当对象是此类(或其子类之一)的实例时,才能通过 Java 虚拟机或者 Java throw 语句抛出。类似地,只原创 2017-11-11 19:52:04 · 280 阅读 · 0 评论 -
多线程与单例对象之间的关系
在我在考虑考虑他们的时候思考了以下几个问题:1、我们通常都将dao层(数据库连接层)设置成单例,这样的话如果每次处理数据库中的数据都需要同一个对象去处理的话,处理数据的性能完全得不到保证。2、ssh中为什么struts2中的action层必须创建多例?而ssm中springmvc的Controller层不需要创建多例?3、一个单例模式创建的对象是可以同时被多个线程处理的,如果一个对象被...转载 2017-12-20 09:39:00 · 3695 阅读 · 1 评论 -
JAVA--访问修饰符
public(公共的) 所有类都可以访问 不写修饰符,那么就是友好的(friendly)或者叫default(默认的) 同一包的类可以访问 protected 只允许继承的子类访问和同一包下的类访问 private 只允许本类访问原创 2017-11-29 10:14:41 · 210 阅读 · 0 评论 -
IDEA进行源码调试
File–>Project Structure —>SDKS—>Sourcepath—>选择自己jdk目录下面的src.zip文件 File–>settings 取消java.和javaw. 然后按F7就可以愉快的阅读源代码了...原创 2018-02-26 15:33:06 · 4872 阅读 · 4 评论 -
为什么文件名必须和public修饰的类名称必须一致
因为: Java是被解释执行的。它在运行时并不是将所有的class文件全都放到内存中。而是在遇到import的时候才去相应的文件目录找相应的class文件。 对于一个public类,它是可以被项目中任何一个类所引用的,只需在使用它前import一下它所对应的class文件即可。将类名与文件名一一对应就可以方便虚拟机 在相应的路径(包名)中找到相应的类的信息。如果不这么做的话,就很难去找,而且...原创 2017-11-29 14:34:14 · 7055 阅读 · 0 评论 -
JAVA协变返回类型
协回返回类型表示:在导出类中覆盖基类的方法,可以返回基类方法的返回类型的某种导出类。 看一下例子class zoo {}class animal { zoo speak() { return new zoo(); }}class tiger extends zoo {}class panda extends animal {原创 2018-02-04 09:26:03 · 287 阅读 · 0 评论 -
FastJson学习之注解
准备一个Persion类public class Person { private Integer id; private String name; private Integer age; public Integer getId() { return id; } public void setId(Inte原创 2018-01-27 21:37:21 · 21597 阅读 · 0 评论 -
FastJson的学习之JSON互相转Map集合,List集合,JavaBean
maven工程的依赖 dependency> groupId>com.alibabagroupId> artifactId>fastjsonartifactId> version>1.2.45version> dependency>fastjsonJar包 创建两个实体类 一个是部门原创 2018-01-27 18:03:28 · 5009 阅读 · 0 评论 -
构建器内部的多形性方法的行为
构建器调用的分级结构(顺序)为我们带来了一个有趣的问题,或者说让我们进入了一种进退两难的局面。 若当前位于一个构建器的内部,同时调用准备构建的那个对象的一个动态绑定方法,那么会出现什么情况 呢?在原始的方法内部,我们完全可以想象会发生什么——动态绑定的调用会在运行期间进行解析,因为对 象不知道它到底从属于方法所在的那个类,还是从属于从它衍生出来的某些类。为保持一致性,大家也许会 认为这应该在转载 2017-12-19 10:28:24 · 202 阅读 · 0 评论 -
反射调用方法,实例化对象,字段赋值
准备一个类,有参构造方法,字段,方法都是私有的public class Car { private String name; private Integer age; private Car(String name, Integer age) { this.name = name; this.age = age; } ...原创 2018-03-16 16:52:24 · 2999 阅读 · 2 评论 -
为什么hashMap的容量是2的幂次
HashMap通过哈希算法得出哈希值之后,将键值对放入哪个索引的方法 static int indexFor(int h, int length) { // assert Integer.bitCount(length) == 1 : "length must be a non-zero power of 2"; return h & (len...原创 2018-03-13 14:51:15 · 1810 阅读 · 0 评论 -
linux下安装redis
一、安装1、获取redis资源创建存放redis的文件夹mkdir /usr/local/rediswget wget http://download.redis.io/releases/redis-4.0.10.tar.gz这里有最新的redis2、解压tar -zxvf redis-4.0.10.tar.gz3、编译源码进入redis-4.0.10目录cd redis-4.0.10编译源码ma...原创 2018-07-07 12:43:31 · 363 阅读 · 0 评论 -
SpringMVC工作原理流程(二)
SpringMVC具体处理请求当有请求过来,首先会先调用HttpServlet的service(ServletRequest req, ServletResponse res)方法,在service方法内部调用service(HttpServletRequest request, HttpServletResponse response)方法(这个service是重载方法,参数类型不同),Fram...原创 2018-06-19 10:32:31 · 256 阅读 · 0 评论 -
SpringMVC工作原理流程(一)
一、SpringMVC整体结构下面是SpirngMVC核心Servlet的继承结构图Servlet的继承结构一共有五个类,GenericServelt,HttpServlet,这个两个类的介绍,传送门,原创 2018-06-18 09:41:22 · 3940 阅读 · 0 评论 -
Servlet详解
一、简介Servlet是server+Applet的缩写,表示一个服务器应用。Servlet就是一套规范,按照这套规范写的代码就可以直接在Java服务器上面运行。二、Servlet接口Servlet是一套规范,那么在Java中规范则是接口。Servlet3.1中Servlet的接口定义如下public interface Servlet { public void init(Servlet...原创 2018-06-17 11:25:37 · 343 阅读 · 0 评论 -
JavaWeb上传和下载原理及实现
1、介绍enctypeenctype 属性规定发送到服务器之前应该如何对表单数据进行编码。enctype作用是告知服务器请求正文的MIME类型(请求消息头content-type的作用的一样)1、1 enctype的取值有三种 值 描述 application/x-www-form-urlencoded 在发送前编码所有字符(默认) mult...原创 2018-06-02 11:11:05 · 14834 阅读 · 4 评论 -
JavaWebSession里面对象活化与钝化
必须工作对象实现序列化接口实现HttpSessionActivationListener这个接口,重写两个方法在web目录下的META-INF下创建一个context.xmlcontext.xml内容如下<Context> <!-- maxIdleSwap:session中的对象多长时间不使用就钝化 --> <!-- directory:钝化后的...原创 2018-05-18 08:31:53 · 740 阅读 · 0 评论 -
java实现非对称加密
对称加密:加密和解密的过程使用的是相同的密钥非对称加密与对称加密不同,非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公开密钥”(公钥)和”私有密钥”(私钥).公钥和私钥的关系是:公钥和私钥一般都是成对出现, 如果你的消息使用公钥加密,那么需要该公钥对应的私钥才能解密; 如果你的消息使用私钥加密,那么需要该私钥对应的公钥才能解密. ...原创 2018-04-09 09:11:03 · 232 阅读 · 0 评论 -
配置Tomcat 输入ip直接访问自己的页面
找到tomcat下的conf文件下service.xml配置文件修改端口号为80 <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8453" URIEncoding="UTF-8" />找原创 2018-03-30 16:18:29 · 9326 阅读 · 1 评论 -
Java解释器介绍
Java 解释器的工作程序如下:首先,它找到环境变量CLASSPATH(将Java 或者具有 Java 解释能力的工具——如浏览器——安装到机器中时,通过操作系统进行设定)。CLASSPATH 包含了一个或多个目录,它们作为一种特殊的“根”使用,从这里展开对.class 文件的搜索。从那个根开始,解释器会寻找包名,并将每个点号(句点)替换成一个斜杠,从而生成从 CLASSPATH 根开始转载 2017-11-28 10:13:06 · 4843 阅读 · 0 评论 -
JAVA基本数据类型初始化--笔记
Java 尽自己的全力保证所有变量都能在使用前得到正确的初始化。若被定义成相对于一个方法的“局部”变 量,这一保证就通过编译期的出错提示表现出来。因此,如果使用下述代码:void f() {int i;i++;}就会收到一条出错提示消息,告诉你i 可能尚未初始化。当然,编译器也可为i 赋予一个默认值,但它看起 来更象一个程序员的失误,此时默认值反而会“帮倒忙”。若强迫程序员提供一个初始值,原创 2017-11-27 08:30:40 · 818 阅读 · 0 评论 -
《Thing in java》上塑造型的笔记
//: Music.java// Inheritance & upcastingclass Note { private int value; private Note(int val) { value = val; } public static final Note middleC = new Note(0),转载 2017-12-13 10:41:20 · 557 阅读 · 0 评论 -
Java的break和contunie加(label)标签的用法
Thinking in java 对”goto “关键字的简单介绍 臭名昭著的“goto” goto 关键字很早就在程序设计语言中出现。事实上,goto 是汇编语言的程序控制结构的始祖:“若条件 A, 则跳到这里;否则跳到那里”。若阅读由几乎所有编译器生成的汇编代码,就会发现程序控制里包含了许多 跳转。然而,goto 是在源码的级别跳转的,所以招致了不好的声誉。若程序总是从一个原创 2017-11-24 16:24:06 · 2242 阅读 · 0 评论 -
子类继承父类,父类的初始化
《Thinging in Java》的引用 基础类及衍生类,而不再是以前的一个,所以在想象衍生类的结果对象时,可能 会产生一些迷惑。从外部看,似乎新类拥有与基础类相同的接口,而且可包含一些额外的方法和字段。但继承并非仅仅简单地复制基础类的接口了事。创建衍生类的一个对象时,它在其中包含了基础类的一个“子对象”。这个子对象就象我们根据基础类本身创建了它的一个对象。从外部看,基础类的子对象已封装原创 2017-11-29 21:36:16 · 2952 阅读 · 0 评论 -
JAVA链式编程
其实链接编程每次返回的都是同一个对象 (只要方法最后 return this )代码演示创建一个beanpublic class Dog { private String color; private Integer age; private String name; public String getColor() { return color;原创 2017-11-14 08:41:25 · 694 阅读 · 0 评论 -
捕获异常try…catch…finally
捕获:Java中对异常有针对性的语句进行捕获,可以对出现的异常进行指定方式的处理捕获异常格式:try { //需要被检测的语句。}catch(异常类 变量) { //参数。 //异常的处理语句。}finally { //一定会被执行的语句。}try:该代码块中编写可能产生异常的代码。 catch:用来进行某种异常的捕获,实现对捕获到的异常进行处理。 final原创 2017-11-12 20:45:15 · 684 阅读 · 0 评论 -
Exection throws和throw
抛出异常 throw假如在我们编写一个有参方法的时候,我们需要考虑到当调用者调用的时候,会传一些非法参数进来,我们需要对传入参数进行一个合法性判断,如果传入参数是非法的,我们就应该告诉调用者,必须传入一个合法的参数,这时候我们需要使用抛出异常的方式来告诉调用者。比如以下代码 public Integer devision(Integer i){ int j=1/i;原创 2017-11-12 11:54:58 · 580 阅读 · 0 评论 -
Exection(二)
因为erroe是系统级别的错误,我们只能通过修正代码来解决,所以我们不做深入的了解我们来了解下,当有异常产生,整个流程是这样的我们先来一段代码public class Main { public static void main(String[] args) { System.out.println("我们来了解下异常的产生过程"); int i=1/0;//手原创 2017-11-11 20:38:33 · 823 阅读 · 0 评论 -
《Thinking in Java》对继承的介绍
在理想情况下,private 成员随时都是“私有”的,任何人不得访问。但在实际应用中,经常想把某些东西深深地藏起来,但同时允许访问衍生类的成员。protected 关键字可帮助我们做到这一点。它的意思是“它本身是私有的,但可由从这个类继承的任何东西或者同一个包内的其他任何东西访问”。也就是说,Java 中的protected 会成为进入“友好”状态 继承的一个好处是它支持“累积开发”,允许我们引入转载 2017-12-03 20:46:10 · 200 阅读 · 0 评论 -
《Thing in java》多态
将一个方法调用同一个方法主体连接到一起就称为“绑定”(Binding)。若在程序运行以前执行绑定(由编译器和链接程序,如果有的话),就叫作“早期绑定”。大家以前或许从未听说过这个术语,因为它在任何程序化语言里都是不可能的。C 编译器只有一种方法调用,那就是“早期绑定”。 上述程序最令人迷惑不解的地方全与早期绑定有关,因为在只有一个 Instrument 句柄的前提下,编译器知 道具体该调用哪个方转载 2017-12-13 15:58:12 · 198 阅读 · 0 评论 -
静态代码块和非静态代码块区别
静态代码块在第一次创建对象的时候执行一次,之后再也不执行。 非静态代码块每创建一次对象就执行一次。class Cat{ Cat(){ System.out.println("构造代码块"); } static{ System.out.println("静态代码块"); } { System.out.println原创 2017-11-27 11:46:27 · 1050 阅读 · 0 评论 -
JAVA初始化顺序
在一个类里,初始化的顺序是由变量在类内的定义顺序决定的。即使变量定义大量遍布于方法定义的中间, 那些变量仍会在调用任何方法之前得到初始化——甚至在构建器调用之前。例如://: OrderOfInitialization.java// Demonstrates initialization order.// When the constructor is called, to create a原创 2017-11-27 09:11:26 · 163 阅读 · 0 评论 -
ThinkingInJava对this关键字的介绍
this 关键字 如果有两个同类型的对象,分别叫作a 和b,那么您也许不知道如何为这两个对象同时调用一个 f()方法:class Banana { void f(int i) { /* ... */ } }Banana a = new Banana(), b = new Banana();a.f(1);b.f(2);若只有一个名叫f()的方法,它怎样才能知道自己是为 a 还是为 b 调用原创 2017-11-25 15:56:56 · 227 阅读 · 0 评论 -
java中可达对象和不可达对象
Java中其实也有内存泄露,就是因为对象无用却可达的原因. 这个细分下来有三个 1. 不可用不可达——>这种情况GC会帮我们回收掉,而C++不会 2. 不可用可达 ——>这种情况会存在内存泄露 3. 可用可达 ——>正常使用 1.不可用不可达就是我们的变量作用域结束了,不可用不可达 2. 不可用可达,就是我们自己没有将其对象, 举个例子: 在这个例子中,我们循环申转载 2017-11-26 21:04:27 · 5569 阅读 · 0 评论 -
RTTI(运行期类型鉴定)笔记
为理解 RTTI 在 Java 里如何工作,首先必须了解类型信息在运行期是如何表示的。这时要用到一个名为 “Class 对象”的特殊形式的对象,其中包含了与类有关的信息(有时也把它叫作“元类”)。事实上,我 们要用 Class 对象创建属于某个类的全部“常规”或“普通”对象。 对于作为程序一部分的每个类,它们都有一个 Class 对象。换言之,每次写一个新类时,同时也会创建一个 335 C转载 2017-12-22 10:39:32 · 202 阅读 · 0 评论 -
static与并发
在java中static用来修饰Class类中属性和方法。被static修饰的成员属性和成员方法独立于该类的任何对象,它们在内存空间上会被放在描述Class的位置中,也就是说它们为此类(Class)所有的实例对象共用。所以说只要这个类被加载,那么这些被static修饰的属性和方法都已经在JVM中存在了,因此,我们可以通过类名直接调用这些属性和方法。那么我就想到了一个在多线程和并发的情况下,被stat转载 2017-11-25 16:42:19 · 1339 阅读 · 0 评论 -
编译dubbo项目方法
1、从git上https://github.com/alibaba/dubbo下载dubbo-master。2、安装maven3.2.5并确保cmd执行mvn -version出现版本号,如果此步已有,请忽略。3、将java项目配置maven路径的setting.xml替换maven安装路径下面的setting.xml配置。4、打开maven安装路径下面的setting.xml配置增加如下镜像并保存转载 2017-12-13 15:59:11 · 368 阅读 · 0 评论 -
log4j.properties属性详解
1.输出级别的种类ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息 2.配置日志信息输出目的地log4j.appender.appenderName = fully.qualified.name.of.appender.classorg...转载 2018-08-11 12:49:36 · 480 阅读 · 0 评论