Java
yaoyaowudi123
学习 积累 成长 满足
展开
-
桥接模式
抽象和实现部分进行了分离;原创 2020-12-07 23:22:34 · 125 阅读 · 0 评论 -
局部内部类引用外部类方法中的变量需要用final修饰
第一点:外部类和内部类被编译成了两个独立的CLASS文件第二点:内部类中引用外部类的局部变量时,编译文件中显示会把局部变量的备份以构造函数的形式传入内部类。这样两点分析之后存在的问题:外部类程序运行过程对局部变量的修改,内部类是完全不知情的,导致了数据的不一致。问题解决:用final修饰;final关键字详解:final根据修饰位置的不同作用也不相同,针对三种情况:...原创 2019-02-19 13:50:20 · 288 阅读 · 0 评论 -
枚举类的使用和理解enmu
原始的接口定义常量 public interface IConstants { String MON = "Mon"; String TUE = "Tue"; String WED = "Wed"; String THU = "Thu"; String FRI = "Fri"; Stri...转载 2018-09-07 16:34:39 · 313 阅读 · 0 评论 -
servlet和JSP中转发和重定向知识复习
1:servlet中转发 、包含、和重定向请求转发:(源组件留头不留体,目标组件留体不留头)Servlet(源组件)先对客户请求做一些预处理操作(一般是对响应头进行处理),然后把请求转发给其他Servlet(目标组件)来完成包括生成响应结果在内的后续操作。 实现方法:request.getRequestDispatcher(“转发的路径”). forward(request,resp...原创 2018-09-02 22:03:58 · 184 阅读 · 0 评论 -
Java网络编程基础部分
转载:文章来源网络通信协议网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal传输控制协议/英特网互联协议),它是一个包括TCP协议和IP协议,UDP(User Datagram Protocol)协议和其它一些协议的协议组,在学习具体协议之前首先了解一下TCP/IP协议组的层次结构。在进行数据传输时...转载 2018-05-08 15:57:26 · 329 阅读 · 0 评论 -
volatile关键字
在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在Java 5之后,volatile关键字才得以重获生机。volatile关键字虽然从字面上理解起来比较简单,但是要用好不是一件容易的事情。由于volatile关键字是与Java的内存模型有关的,因此在讲述volatile关键之前,我们先来了解一下与内存模型相关的概念和知识,然后分析了volatile关键字的...原创 2018-05-07 20:15:01 · 114 阅读 · 0 评论 -
Java读写锁可重入锁
重入锁Java中的重入锁(即ReentrantLock) 与JVM内置锁(即synchronized)一样,是一种排它锁。ReentrantLock提供了多样化的同步,比如有时间限制的同步(定时锁),可以被Interrupt的同步,即中断锁 (synchronized的同步是不能Interrupt的)等。在资源竞争不是很激烈的情况下,Synchronized的性能要优于ReetrantLock...原创 2018-05-07 18:55:56 · 941 阅读 · 0 评论 -
synchronized的使用
分析:synchronized的几种用法:对象锁 -- 锁在某一个实例对象上。如果该类是单例,那么该锁也具有全局锁的概念。 实例锁对应的就是synchronized关键字。修饰代码块 synchronied { } synchronied(this) { } 或者 synchronied(object) { }修饰成员方法 public synchronized v...原创 2018-05-07 17:54:15 · 123 阅读 · 0 评论 -
线程中断分析
正如中断二字所表达的意义,在线程运行(run方法)中间打断它,在Java中,提供了以下3个有关线程中断的方法//中断线程(实例方法)public void Thread.interrupt();//判断线程是否被中断(实例方法)public boolean Thread.isInterrupted();//判断是否被中断并清除当前中断状态(静态方法)public static boo...原创 2018-05-04 19:32:16 · 232 阅读 · 0 评论 -
Thread类的使用和线程的状态流程
静态方法currentThread()方法currentThread()方法可以返回代码段正在被哪个线程调用的信息。sleep()方法方法sleep()的作用是在指定的毫秒数内让当前“正在执行的线程”休眠(暂停执行)。这个“正在执行的线程”是指this.currentThread()返回的线程。sleep方法有两个重载版本:sleep(long millis) //参数为毫秒sleep(...原创 2018-05-04 18:12:31 · 435 阅读 · 0 评论 -
Java中的线程池使用
一、线程池架构概括一下:Executor是最基础的执行接口;ExecutorService接口继承了Executor,在其上做了一些shutdown()、submit()的扩展,可以说是真正的线程池接口;AbstractExecutorService抽象类实现了ExecutorService接口中的大部分方法;TheadPoolExecutor继承了AbstractExecutorService,...转载 2018-05-04 17:43:14 · 140 阅读 · 0 评论 -
Java多线程的三种实现方式
方式一:继承Thread类重写run方法public class MyThread extends Thread { @Override public void run() { System.out.println(Thread.currentThread().getName()+"i am is thread!!!!"); } }方式二:实现Runnable接口实现run方法pu...原创 2018-05-04 17:09:33 · 128 阅读 · 0 评论 -
Java异常处理
简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用户?或者用C语言风格:用函数返回值作为执行状态?。Java提供了更加优秀的解决办法:异常处理机制。异常处理机制能让程序在异常发生时,按照代码的预先设定的异常处理逻辑,针对性地处理异常,让程序尽最大可能恢复正常并继续执行,且保持代码的清晰。Java中的异...转载 2018-04-26 14:17:33 · 215 阅读 · 0 评论 -
Java中用到的三种代理方式
Java中代理可以通过以下三种方式进行实现:静态代理、动态代理、CGLIB技术代理模式介绍代理模式是一种设计模式,提供了对目标对象额外的访问方式,即通过代理对象访问目标对象,这样可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。静态代理这种代理方式需要代理对象和目标对象实现一样的接口。优点:可以在不修改目标对象的前提下扩展目标对象的功能。在编译完成后,程序运行前已经代理完成了...原创 2018-05-03 20:21:30 · 261 阅读 · 0 评论 -
Java反射使用
第一步:在学习Java反射机制之前应该先去学习,类的加载机制和加载流程。只有这样才能够更加清晰的去理解和掌握Class对象的由来。Class对象是由JVM在加载完Class文件之后进行创建的,在存在于堆中,Class对象中存在着指向加载进方法区中的类信息的引用,所以通过Class对象可以清晰的窥探到整个类的结构。第二步 理清反射的使用的思路和类相关的信息包括,父类信息,构造函数,字段信息,方法。所...原创 2018-05-03 14:56:16 · 107 阅读 · 0 评论 -
ThreadLocal详解
第一步:分析 ThreadLocal的源码ThreadLocal有一个内部类ThreadLocalMap,这个类的实现占了整个ThreadLocal类源码的一多半。这个ThreadLocalMap的作用非常关键,它就是线程真正保存线程自己本地变量的容器。每一个线程都有自己的单独的一个ThreadLocalMap实例,public T get() { //获取当前执行线程 ...原创 2018-05-03 11:06:58 · 188 阅读 · 0 评论