自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(13)
  • 收藏
  • 关注

原创 java读取txt文件第一行遇到的问题

场景:今天在用java字符流读取类似下图的txt文件:目标是将每一行的内容通过’,’分割,分别转化为int和String类型并保存,读取代码如下:File file = new File("C:\\Users\\liuwi\\Desktop\\百度城市信息.txt"); try { BufferedReader reader = new BufferedRea

2017-12-20 14:46:01 10656 1

原创 源码角度理解JDK动态代理的实现原理

在另一篇文章浅析AOP实现原理(2)JDK动态代理中我们了解了JDK动态代理的用法,但是光会用还不行,这篇文章我们来探讨几个第一次使用JDK动态代理时可能都会产生的疑问: * 1、代理类对象究竟是如何生成的 * 2、invoke方法是何时被调用的JDK如何动态生成代理类对象在上一篇文章中,生成代理的方法为:public static Object getProxy(Object object){

2017-12-19 14:18:06 276

原创 利用jad工具进行反编译

相信学习java的同学都不是直接从IDE上手的,老师会让我们先用文本文档写一个HelloWorld.java文件,然后通过javac、java命令运行HelloWorld什么是编译我们编写的HelloWorld.java文件称为java源文件,执行javac命令之后,.java源文件会被转化成机器所能识别的.class二进制文件,这个过程就称为编译什么是反编译顾名思义,就是编译的反向操作- -如何反

2017-12-19 14:15:49 354

原创 浅析AOP实现原理(2)JDK动态代理

在上一篇文章中我们聊了聊静态代理的实现,除了静态代理,AOP中主要用到的是动态代理即JDK动态代理和CGLIB动态代理jdk动态代理jdk动态代理是运行时JAVA反射机制生成相应对象的代理类而程序员手动编码生成,其中主要用到接口InvocationHandler和一个类ProxyProxy类 public static Object newProxyInstance(ClassLoader load

2017-12-19 14:13:24 224

原创 浅析AOP实现原理(1)静态代理

什么是AOPAOP是OOP的扩展,在OOP中,有许多与核心业务无关的代码如日志代码分布在项目的各个层次中,产生大量的重复代码,并且不利于模块的重用,因此,AOP提供了一种称为切面的技术,剖开对象的内部,将那些影响了多个类的共同行为封装成一个可重用的模块,称为Aspect,也就是切面。这样做的好处就是减少了重复的代码,降低模块之间的耦合。在AOP中,最重要的就是AOP代理类的实现,使用了代理模式(不明

2017-10-14 17:45:20 255

原创 我对代理模式的理解

我在学校迎新晚会上见到一个跳舞的女生,第一眼就想把她占为己有,可是我与她素不相识,只能找其他同学偷偷要来她的联系方式。这就是代理模式概念我们来看一下head first设计模式里是怎么定义代理模式的:代理模式为另一个对象提供一个替身或占位符以控制这个对象的访问。使用代理模式创建代表对象,让代表对象控制某对象的访问,被代理的对象可以是远程的对象、创建开销大的对象或需要安全控制的对象。如何实现拿我追女生

2017-10-14 17:18:36 252

原创 我对JAVA面向对象的理解

在java中,除了八种基本数据类型,一切皆对象。java是基于C++设计的语言,而C++又是继承自C语言,C语言是一种面向过程的语言,在软件比较简单的年代,只需要敲一些函数、定义基本数据就能满足需求,但是当软件规模越来越大,功能复杂度超过hello world的时候,人们发现代码量越来越庞大,难以维护和理解,因此提出了面向对象的思想。在我的理解中,面向对象就是以现实生活中处理问题的方式来编

2017-10-13 14:19:12 205

原创 JAVA线程知识整理

最近结合《java编程思想》和一些网上的博客来重新研究了一下线程的状态,这里做个小小的总结,为大家也为自己巩固基础知识。部分参考Java中Wait、Sleep和Yield方法的区别线程几种基本状态一般来说,线程可以有四种状态:(1)新建new:当线程被创建时,它只会短暂地处于这种状态,此时它已经分配了必需的系统资源,并执行了初始化。此刻线程已经有资格获得CPU时间了

2017-10-13 14:18:22 173

原创 eclipse无法查看源码的解决方案

再eclipse中ctrl加右键查看源码,却提示Source not found这是由于eclipse的jdk没有配置对应的src,解决方案如下:菜单栏中选择Window->Preferences->Java->Installed JREs,展示如下窗口,选中Jre包,点击右边的Edit在出现的窗口中,选中rt.jar,点击左边的下拉

2017-10-13 14:17:27 3338 2

原创 eclipse更改目录查看结构

默认情况下,eclipse的目录结构是这样显示的:但是这样很明显不符合我们创建目录的思路,为了使目录以树形结构显示,我们可以选择如图操作:选择之后,目录结构就变成了我们想要的效果:

2017-10-13 14:16:06 963

原创 ubuntu配置jdk

每次配置jdk都要重新去网上搜一遍教程,觉得太麻烦了,所以自己记录一下,该配置前提是已经将jdk的gz文件下载到u盘中1、df查看文件系统,找到u盘路径,我的优盘路径为最后一行2、创建文件夹/usr/lib/java,需要sudo权限sudo mkdir /usr/lib/java3、将gz文件解压到该文件夹下tar -zxvf [gz文

2017-10-13 14:13:57 221

原创 ubuntu16.04安装并配置tomcat9.0.0

1、下载点击官方下载地址 (需翻墙)下载tomcat9.0.0 tar.gz版本图1 官网下载地址2、安装我们希望把tomcat安装到/opt路径下,首先在/opt下创建tomcat文件夹然后通过命令tar -zxvf 文件名 -C 路径将下载好的gz文件解压并移动到/opt/tomcat目录下,注意此步骤

2017-10-13 14:11:34 2325

原创 初学GIT 一、提交本地代码(WIN10)

官网下载好GIT之后,在win里面找到Git Bash并打开1、首先配置身份:git config --global user.name "shit"git config --global user.email "shit'email"配置完成后可以用相同指令查看配置是否成功,只需去掉引号及其里面的内容2、创建代码库用Git Bash进入到项目目录下面cd c:cd

2017-02-06 14:16:37 876

空空如也

空空如也

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

TA关注的人

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