
Java
西邮陈冠希
衣带渐宽终不悔,为伊消得人憔悴。
个人博客:http://www.yangchaoyang.com/
展开
-
从汇编角度分析volatile关键字
近些天,学习模拟实现线程池,仅仅听到线程两个字,就让人不寒而栗。刚开始接触多线程编程,确实很难,多线程编程要结合很多很多的计算机底层知识,如操作系统,计算机组成原理等。这篇博客,是我对volatile关键字的一个初探。首先,开始的代码是这样的(代码很简单,很短,所以,可以认真看看)ThreadOperate类,我自己定义的一个类,实现了Runnable接口public...原创 2018-11-09 15:26:21 · 1757 阅读 · 2 评论 -
重定向与请求转发
两者区别重定向与请求转发比较 重定向 请求转发 地址栏上显示的是最后的那个资源的路径地址 地址上显示的是请求servlet的地址。 返回200 ok 请求次数最少有两次, 服务器在第一次请求后,会返回302 以及一个地址, 浏览器在根据这个地址,执行第二次访问。 请求次数只有一次, 因为是服务器内部帮客户端执行了后续的工作。 可以跳转到任意路径。 不是自己的...原创 2018-12-04 09:51:49 · 233 阅读 · 0 评论 -
中文文件下载方法(Java)
web开发中,如果浏览器上有一个超链接,点击它后,弹出的下载框中文件名是乱码或不显示的时候,往往是由于我们没有对中文文件名进行编码处理,所以,这里提供一个中文文件下载的方法,以供参考。针对浏览器类型,对文件名字做编码处理 Firefox (Base64) , IE、Chrome(UTF-8)。。。如果文件的名字带有中文,那么需要对这个文件名进行编码处理 如果是IE ,或者 Chrome...原创 2018-12-03 16:20:28 · 477 阅读 · 0 评论 -
idea抽取一段代码为一个方法
所遇到的问题今天,看到视频里的老师用eclipse抽取了一段代码,变为一个方法,感觉操作很高大上。那么,既然eclipse能做的,牛逼的idea为什么不能做?于是,百度了相关问题,网上一堆人都说快捷键是Ctrl + Alt + M,但是我的idea(2018.3最新版本)没有任何反应(我怀疑是因为我把idea的快捷键设置为了eclipse风格)。解决办法于是,自己选中代码,右键进行寻找...原创 2018-12-01 11:33:24 · 19288 阅读 · 2 评论 -
Servlet生命周期详解
Servlet是什么?Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。Servlet生命周期 生命周期: 从创建到销毁的一段时间 生命周期方法 从创建到销毁,所调用的方法。有:init,service,destroyini...原创 2018-11-28 16:06:08 · 1170 阅读 · 0 评论 -
JS中的值传递和引用传递的分析
之前教主带我们看一篇博客,博客作者对JS中的值传递和引用传递一知半解,差点带偏我们。于是就整理出了这篇关于JS中值传递和引用传递的博文。值传递是针对基本类型的,而引用传递是针对引用类型的。传参可以理解为:复制变量的值,把这个副本传递给形参。基本类型复制后,形参与实参完全是独立的,不管改变哪一个,都不会对另一个产生影响。引用传递本质上还是传值,具体的步骤是:1、先在栈中开辟形参引用。2、...原创 2018-10-25 18:00:22 · 396 阅读 · 0 评论 -
JavaScript中的prototype和__proto__
这几天js的学习,不得不说,js真的很诡异,实在太灵活,对于我这个小白来说,只能从基础的模仿开始学习了。js来回都脱离不了“键值对”,其中灵活多变的使用,把我搞得是晕头转向。JavaScript中的prototype和__proto__:首先,先看一段简单的js代码:function Fun() { this.num = 10;};var fun = new Fun;v...原创 2018-10-20 23:00:35 · 3982 阅读 · 0 评论 -
http协议相关内容,C/S与B/S,ip报文,TCP,UDP
目录HTTP技术架构HTTP协议功能工作原理HTTP协议的主要组成部分HTTP协议 StatusC/S与B/S的比较:服务器与Web服务器的差别浏览器与客户端的差别浏览器与Web服务器的作用与关系长连接与短连接无状态协议无状态与KeepAlive的关系通过Socket通信看TCP与UDP的面向连接/面向非连接扩展阅读TCP/IP参考模型...原创 2018-10-01 00:24:05 · 5828 阅读 · 0 评论 -
函数式接口:Lambda表达式的优点
java8的新特性就是Lambda表达式,那么,Lambda表达式到底能带来哪些优点。我这里总结一个最最最常见的优点--性能优化。函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。函数式接口可以被隐式转换为 lambda 表达式。一:优化性能先看一段常见的程序public class MyLambda { ...原创 2018-12-18 22:47:34 · 2497 阅读 · 1 评论 -
监听器的原理分析
一:监听器是什么监听某一事件的发生以及状态的改变。二:监听器的内部机制接口回调。三:分析A在执行循环的时候,当循环到i == 5的时候,通知B。事先先把一个对象传递给A,当A执行到i == 5的时候,通过这个对象,来调用B的方法。注意:不是直接传递B的实例,而是传递一个接口的实例过去! 监听器的内部机制就是这样,有点java基础的,应该看看都会明白的。在ja...原创 2018-12-16 20:49:44 · 2852 阅读 · 0 评论 -
Complex类的实现
核心代码public class Complex { private double real; private double vir; //复数的除法,c = a/b public static Complex divide(Complex one, Complex two) throws DividedByZeroException { return multiplicat...原创 2018-01-20 19:05:52 · 1056 阅读 · 0 评论 -
Java装配模式
public class BeautifulAppearance implements IAppearance { @Override public String appearance() { return "外形美观"; }}public class MediumPrice implements IPrice { @Override public String...原创 2018-01-20 19:44:08 · 2760 阅读 · 0 评论 -
Java中final、finally和finalize的区别
1、final修饰符(关键字)。被final修饰的类,就意味着不能再派生出新的子类,不能作为父类而被子类继承。因此一个类不能既被abstract声明,又被final声明。将变量或方法声明为final,可以保证他们在使用的过程中不被修改。被声明为final的变量必须在声明时给出变量的初始值,而在以后的引用中只能读取。被final声明的方法也同样只能使用,不能重载。2、finally是在异常处理时...原创 2018-03-21 21:40:14 · 186 阅读 · 1 评论 -
代理模式&&java中的代理模式的实现(静态,动态:jdk,cglib)
代理模式代理模式(Proxy):为其他对象提供一种代理以控制对这个对象的访问。下来,看一个很简单的代理模式的描述:/*Subject类,定义了RealSubject和Proxy的公用接口,这样就可以在任何使用RealSubject的地方使用Proxy*/public abstract class Subject { public abstract void reques...原创 2018-10-11 00:26:02 · 221 阅读 · 0 评论 -
自行实现一个简单的RMI
在教主的带领下,完成了一个很简单的RMI工具。就当是练习网络编程吧。RMI(Remote Method Invocation),远程方法调用。涉及两个网络端。其核心思想是,一个端可以通过调用另一个端的方法,实现相关功能。一个端“执行”一个方法,而这个方法的实际执行是在另一端进行的!要进行远程方法调用,那么,两个端都应该有相同的类,相同的方法。一个端执行一个方法,其实本质是通过调用这个...原创 2018-10-28 20:57:09 · 374 阅读 · 0 评论 -
Java中Map遍历的四种方式
Java中Map遍历的四种方式Java中的Map(HashMap,TreeMap,LinkedHashMap,HashTable)都可以用以下四种方式遍历。一:使用entry实现遍历for (Map.Entry<Integer, String> entry : map.entrySet()) { Integer key = entry.getKey(); Stri...原创 2019-09-03 00:50:06 · 540 阅读 · 0 评论