- 博客(66)
- 收藏
- 关注
原创 模拟IDE上的run过程
看了一下老陈写的模仿JDK动态代理,从中取一部分单独扩展,模拟一下IDE上的run过程(不愧是老陈,去年写的东西我要现在才能理解)对run过程的猜想在点击run的过程中应该做了不少事。先编译运行run工具,执行引擎增加一个线程开始执行被加载的run工具的字节码指令;线程执行过程中将目标源码进行编译,获取ClassLoader实例对字节码进行加载,在堆上创建并初始化Class< ...
          2017-12-30 19:09:00
           127
127
        
原创 Java动态加载
今天初步接触了一下Java的动态加载概念,发现很多情景下我们都会遇到这种用法,自己当初并没有意思到,只是把它当做那种奇奇怪怪的感觉...首先,程序是如何跑起来的第一步,编译检查、通过编译第二步,构建加载器对象、构建字节码对象,完成静态加载第三步,在一切准备完成后,对已经加载的目标上跑线程第四步,在跑线程过程中,获取当前加载器对象、构建字节码对象,完成动态加载加载只是一个读文...
          2017-12-21 01:17:00
           129
129
        
原创 手动步骤走一种完整的后端开发流程
p.p1 { margin: 0; font: 12px ".PingFang SC"; color: rgba(69, 69, 69, 1) }p.p2 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1); min-height: 14px }span.s1 { font: 12px "Helve...
          2017-12-11 17:07:00
           271
271
        
原创 反射和静态得明确理清楚
我们现在写了三个类Class Dog Animal类的初始化就是走完源码,读出JVM配置,返回类运行时对象调用Dog类的构造方法new Dog()返回一个实例我们可以设定一个变量dog指向它,并约定其为Dog类型调用Dog类的class方法Dog.class返回一个实例我们可以设定一个变量classDog指向它,并约定其为Class类型,对Dog运行时类进行反射...
          2017-12-10 08:09:00
           83
83
        
原创 换Mac了,迈入了终端的大门
多终端其实本质和多线程一样,所有终端其实都共享着同一个内存只不过不同终端对共享内存不同部分的权限不同罢了所以对终端的数量必须要有限制我这里开启了四个线程,很明显四个线程都在跑同一个内存而且四个线程都挂在zzzz76用户下所以呢,用户代表的是一个标签,一个权限,任何线程都必须挂在一个用户下而线程,反而可以视为唯一可以量化的常量任何一个线程我都可以随时给它换标签,唯独窗口线程是特殊的窗口...
          2017-11-13 00:23:00
           100
100
        
原创 合并代码有点像玩部落冲突哈
有时冲突稍微多一些就显得乱七八糟的。。。那就不如玩一个攻城战争游戏当然看整体流程时可以一样先合并,后决定扔哪条分支;但对于合并者来讲这样很不友好,于是采用上面这种分先后的思维会感觉蛮不错的...
          2017-11-08 00:44:00
           101
101
        
原创 现在异常用的溜得飞起
return 使线程跳出函数,之后需要进行接收throw RuntimeException 使线程跳出函数, 之后需要进行接收区别在于跳出函数的范围,return的范围是固定的,往外跳一层throw RuntimeException 可以不跳出函数层,也可以无限往上跳这个的大部分思路我们肯定想的到,但是当我们限定跳出类型时会不会有影响呢换句话说能否在限定层的外面进行接收呢,我们知道,对于...
          2017-11-04 18:09:00
           99
99
        
原创 那熟悉的接口--最近做服务端的感悟
完整的风控项目必定编译打包生成了一颗树(这个过程咱们先不分解,因为实际上咱们也可以看得到这棵树被完整的打包编译了出来)上面的树指的是关系树,物理上依旧是各自独立的模块api部分只需选定#一个#树节点进行依赖(看似蜻蜓点水,威力却巨大),依赖后,我们可以很容易的顺着依赖进入不属于API项目本身的部分可以从实际的jar包中进入,也可以从版本库的pom文件中进入(实际都是在仓库里一层一层的进...
          2017-10-31 01:04:00
           102
102
        
原创 字节流和字符流
文件只是用来存放字节序列的!!!!真正的字符集转化是发生在String--》byte[]IO操作的基本单位都是byte,换句话说,传输线上的都是byte,之前用到的不同类是为了在传输线前处理、优化BufferedReader // 字符流的缓存InputStreamReader // 字节流转成了字符流FileInputStream // 文件转成了字节流FileReader...
          2017-08-27 13:30:00
           93
93
        
原创 对正则表达式的简单理解
所有的表达式其实都基于三个命令接下来关键是正则的匹配规则需要我做理解对如下匹配文本做一个简单的测试:https://wz.cnblogs.com/正则表达式:.[a-z]{1,15}匹配结果:https/wz.cnblogs.com正则表达式:^.[a-z]{1,15}匹配结果:https正则表达式:.[a-z]{1,15}/$匹配结果:.com/正则的...
          2017-08-26 11:52:00
           115
115
        
原创 利用maven进行项目管理
下面为maven项目管理的一个结构首先pom是路径文件,我们在编译或是运行程序时调用到jdk或一些自己写的jar包时会需要指明物理路径,这里的pom是一样的道理,同时在maven的管理下多出来了一些仓库管理的扩展功能从我们导入项目开始,maven根据pom.xml文件从远程仓库下载缺少的jar包依赖至本地仓库,以满足对外依赖,但是项目内部的各个模块之间的依赖无法满足于是利用mav...
          2017-08-12 16:57:00
           157
157
        
原创 Github协作图想
首先 git pull 从远程拉下代码,并在本地与本地代码自动合并在本地解决冲突后,可将本地代码进行远程推送版本库的Repository中存储的是版本树状链,每一根链接线代表每一次的修改,每一个节点代表一种累计状态也就是版本那么现在我将远程库clone下来,实际上我拥有了一颗本地版本树状链,通过checkout切换分支合并方的head版本必须在被合并方的head版本链后,才不会出...
          2017-07-23 21:57:00
           147
147
        
原创 Java异常层次结构
1. 如果是不可查异常(unchecked exception),即Error、RuntimeException或它们的子类,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在运行时会被系统抛出。2. 必须声明方法可抛出的任何可查异常(checked exception)。即如果一个方法可能出现受可查异常,要么用try-catch语句捕获,要么用throws子句...
          2017-07-21 20:33:00
           143
143
        
原创 类运行时对象
类被加载后会生成类运行时对象当然,类被加载后才能称为类,加载前只能称为字节码(代码的编译后形式)字节码过于具体,不建议直接比作类(我这里是另一种抽象理解)现在有两个字节码,加载成两个类Dao和BaseDao我们使字节码BaseDao extends Dao再次加载,此时得到两个独立的类于是对父代码的修改加载后会影响两个类,这也是继承的方便之处类又被称为类运行时对象,通过C...
          2017-07-19 22:24:00
           126
126
        
原创 Git版本库工作流程图想
对照廖雪峰的教程,发现有很多难以理解的地方,画了一个图想方便以后参考首先两个基本命令反应了版本库最本质的工作流程,后面的命令其实都基于此git add 把文件修改添加到暂存区git commit 在原版本的基础上增加一个暂存区的文件修改成为新版本git add . 以../.git根目录工作区为范围的所有文件修改添加到暂存区git add 1.txt 把1.txt的文件修改添加到...
          2017-07-17 23:05:00
           98
98
        
原创 实习应聘总结
这次暑期实习一共获得了5份Java实习生应聘的机会,期中两家远程笔试,一家远程面试,两家面试远程笔试遇到了两种类型,项目型测试和考试型测试项目型测试的目标比较明确,就是写代码的能力,而写代码体现在很多方面:对题目的理解能力,选择的工程框架,算法效率和质量,对说明文档的撰写,代码的风格,你的提交记录等。 1. 首先强烈注意看清题意,如果题目是让你设计一个工程的话,展现你超高的面向对...
          2017-07-04 11:08:00
           134
134
        
原创 SSH:远程登陆
SSH用于计算机之间的加密登录的前提是公钥为真,所以存在中间人攻击中间人攻击:与https协议不同,SSH协议的公钥是没有CA公证的,当对公钥的请求被中间截获时,中间人可以发出伪造公钥干坏事而不被识破 为了避免中间人攻击,SSH有两种应对方法,口令登录和公钥登录(这里只介绍如何保证公钥为真,至于之后的登陆验证方法很多)口令登录:私钥于远程主机中,本地对公钥发出请求,当然我们无法保证接实...
          2017-05-29 21:55:00
           129
129
        
原创 对HashMap进行排序
首先来看看Map集合获取元素的三种常见方法keySet()、values()、entrySet()1. values():返回map集合的所有value的Collection集合(于集合中无序存放) 1 import java.util.*; 2 3 public class Main{ 4 public static void main(String[] args...
          2017-05-23 11:50:00
           124
124
        
原创 关于java使用double还是float
眼睛一亮在论坛上发现一枚很有价值的评论赶紧抄下来...记住java一定要用double,更鼓不变,就算数值不大也要用double。了解java虚拟机的底层会知道,float放在内存中其实是当作double来处理的,它不会比double更节约内存资源,对应的double虚拟机会直接以double形式来进行处理,快速而且精度高,但是如果用float,不但不会节约内存资源,虚拟机为了校验fl...
          2017-05-20 11:47:00
           158
158
        
原创 从回车换行到字符编码
将csv数据导入mysql时发现一个有趣的问题行段的结束符是以\r\n而非一贯的字符串思维中的换行为\n于是乎就换行、回车整理了一些思路网上的说法是这样的:回车: Carriage Return新行:New LineLinux中\n表示回车+换行;Windows中\r\n表示回车+换行。(文件以\r\n结尾)Mac中\r表示回车+换行。这也成为了不同系统下文件不能直接打开的原因之一个人...
          2017-05-18 22:15:00
           194
194
        
原创 变量和值的延伸思考
为了今后想问题不偏,提出容器和值的个人抽象概念决定将指针变量、类型变量,归为容器;而对象(地址值直接抽象为对象)和值归为值。容器和对应包裹在内(指向)的值类型一致,处于真正核心的值被封闭起来必须通过容器来对外(用“封装”也不错),处理问题的永远是容器和容器类型。既然说到指针变量和类型变量,我就想到了String,String是属于指针变量的,所有的字符串对象被创造出后都放到了Stri...
          2017-05-09 12:00:00
           88
88
        
原创 一念之想--多维数组
久未思考,又中了数组的埋伏所谓称之数组的维度,其实是一种抽象的说法;绝对来说,数组并不存在维度,所有集合只有一维,不同的仅仅是指针链的深浅所以for(int[][]objs : int[][][] objss)依然是将objss视为集合,提取的元素仅仅是reference,非整型变量。...
          2017-05-08 22:15:00
           111
111
        
原创 java扫描控制台输入
由于因最近练习算法的需要,加上API文档中翻译的太过模糊,做了一些小测试,算是武断的记下一些个人结论。Scanner cin = new Scanner(System.in);对于cin.next(),若cin缓冲区中有值,获取并返回该String(实际上是返回String池中的地址);若cin缓冲区中无值(值被取尽也算),要求向缓冲区输入值(String),确认后再次运行(这次缓冲...
          2017-05-07 19:47:00
           162
162
        
原创 java字符转义
之前对java字符转义这一块稍作了解,在这里理理自己主观浅显的理解这里会谈谈字符编码的是另一种问题和转义没有关系以下面代码做分析System.out.println("a".length()+"b".length());对以上代码["a".length()+"b".length()]部分["]默认作为编译器的["],用来识别编译器中的字符串部分,["a".length()+"b...
          2017-05-02 11:51:00
           221
221
        
原创 javaee开发工具及环境配置过程
在配置javaee开发环境的过程中遇到过很多问题,在此系统的整理一下我之前的配置过程注:配置过程学习自《JSP&Servlet学习笔记(第二版)》详细过程可以阅读此书。在文章的最后会贴出我的所有开发工具一、准备开发环境1.安装Tomcat这里使用Apache Tomcat作为Web容器,下载网址:http://tomcat.apache.org/download-70...
          2017-05-01 10:59:00
           263
263
        
原创 java数组、泛型、集合在多态中的使用及对比
我们在使用数组,泛型集合的过程中不可避免的会碰到多态,或者说什么情况下能如何使用父数组引用子数组(集合、泛型)呢?数组在多态中的使用元素为父类型的数组引用可指向元素为子类型的数组对象当数组被调用时由当前引用确定数组元素的类型当元素为父类型的数组引用指向了元素为子类型的数组对象时,不可通过父类型的数组引用向集合加入除子类型及其下层级的之外的元素(可通过编译,运行过程出错) 1 ...
          2017-03-01 11:32:00
           151
151
        
         
      
空空如也
         
      
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
 RSS订阅
RSS订阅