随笔分类 - 分享认知
讲解知识,分享认知
摘要:接昨天的文章顺便理一理方法的执行过程,这里借许令波大牛的图一用 方法执行之前 调用昨天的run工具,完成了目标源码的编译后;获取ClassLoader对象,加载目标字节码至方法区,在堆上创建Class对象并初始化(总之对象就是一种有场景的半持久型数据)。 方法的执行过程 调用对象的方法,开始执行方法
阅读全文
摘要:今天初步接触了一下Java的动态加载概念,发现很多情景下我们都会遇到这种用法,自己当初并没有意思到,只是把它当做那种奇奇怪怪的感觉... 首先,程序是如何跑起来的 第一步,编译检查、通过编译 第二步,构建加载器对象、构建字节码对象,完成静态加载 第三步,在一切准备完成后,对已经加载的目标上跑线程 第
阅读全文
摘要:手动步骤走一种完整的后端开发流程 服务端 1、将远程仓库的jar包 拷贝 到本地仓库 2、将项目代码 拷贝 到本地 并建立路径 能够执行编译 3、编译打包项目(package)至项目下,项目跑起来后进行本地测试 4、版本稳定后,上测试环境 上测试环境 1、将远程仓库的jar包 拷贝 到测试环境 2、
阅读全文
摘要:我们现在写了三个类Class Dog Animal 类的初始化就是走完源码,读出JVM配置,返回类运行时对象 调用Dog类的构造方法new Dog()返回一个实例 我们可以设定一个变量dog指向它,并约定其为Dog类型 调用Dog类的class方法Dog.class返回一个实例 我们可以设定一个变量
阅读全文
摘要:多终端其实本质和多线程一样,所有终端其实都共享着同一个内存只不过不同终端对共享内存不同部分的权限不同罢了所以对终端的数量必须要有限制 我这里开启了四个线程,很明显四个线程都在跑同一个内存而且四个线程都挂在zzzz76用户下所以呢,用户代表的是一个标签,一个权限,任何线程都必须挂在一个用户下而线程,反
阅读全文
摘要:有时冲突稍微多一些就显得乱七八糟的。。。 那就不如玩一个攻城战争游戏 当然看整体流程时可以一样先合并,后决定扔哪条分支;但对于合并者来讲这样很不友好,于是采用上面这种分先后的思维会感觉蛮不错的
阅读全文
摘要:return 使线程跳出函数,之后需要进行接收throw RuntimeException 使线程跳出函数, 之后需要进行接收区别在于跳出函数的范围,return的范围是固定的,往外跳一层throw RuntimeException 可以不跳出函数层,也可以无限往上跳这个的大部分思路我们肯定想的到,
阅读全文
摘要:完整的风控项目必定编译打包生成了一颗树(这个过程咱们先不分解,因为实际上咱们也可以看得到这棵树被完整的打包编译了出来)上面的树指的是关系树,物理上依旧是各自独立的模块 api部分只需选定#一个#树节点进行依赖(看似蜻蜓点水,威力却巨大),依赖后,我们可以很容易的顺着依赖进入不属于API项目本身的部分
阅读全文
摘要:文件只是用来存放字节序列的!!!! 真正的字符集转化是发生在String--》byte[] IO操作的基本单位都是byte,换句话说,传输线上的都是byte,之前用到的不同类是为了在传输线前处理、优化 BufferedReader // 字符流的缓存 InputStreamReader // 字节流
阅读全文
摘要:所有的表达式其实都基于三个命令 接下来关键是正则的匹配规则需要我做理解 对如下匹配文本做一个简单的测试:https://wz.cnblogs.com/ 正则表达式:.[a-z]{1,15} 匹配结果: https /wz .cnblogs .com 正则表达式:^.[a-z]{1,15} 匹配结果:
阅读全文
摘要:下面为maven项目管理的一个结构 首先pom是路径文件,我们在编译或是运行程序时调用到jdk或一些自己写的jar包时会需要指明物理路径,这里的pom是一样的道理,同时在maven的管理下多出来了一些仓库管理的扩展功能 从我们导入项目开始,maven根据pom.xml文件从远程仓库下载缺少的jar包
阅读全文
摘要:首先 git pull 从远程拉下代码,并在本地与本地代码自动合并 在本地解决冲突后,可将本地代码进行远程推送 版本库的Repository中存储的是版本树状链,每一根链接线代表每一次的修改,每一个节点代表一种累计状态也就是版本 那么现在我将远程库clone下来,实际上我拥有了一颗本地版本树状链,通
阅读全文
摘要:1. 如果是不可查异常(unchecked exception),即Error、RuntimeException或它们的子类,那么可以不使用throws关键字来声明要抛出的异常,编译仍能顺利通过,但在运行时会被系统抛出。 2. 必须声明方法可抛出的任何可查异常(checked exception)。
阅读全文
摘要:类被加载后会生成类运行时对象 当然,类被加载后才能称为类,加载前只能称为字节码(代码的编译后形式) 字节码过于具体,不建议直接比作类(我这里是另一种抽象理解) 现在有两个字节码,加载成两个类Dao和BaseDao 我们使字节码BaseDao extends Dao 再次加载,此时得到两个独立的类 于
阅读全文
摘要:对照廖雪峰的教程,发现有很多难以理解的地方,画了一个图想方便以后参考 首先两个基本命令反应了版本库最本质的工作流程,后面的命令其实都基于此git add 把文件修改添加到暂存区git commit 在原版本的基础上增加一个暂存区的文件修改成为新版本 git add . 以../.git根目录工作区为
阅读全文
摘要:SSH用于计算机之间的加密登录的前提是公钥为真,所以存在中间人攻击中间人攻击:与https协议不同,SSH协议的公钥是没有CA公证的,当对公钥的请求被中间截获时,中间人可以发出伪造公钥干坏事而不被识破 为了避免中间人攻击,SSH有两种应对方法,口令登录和公钥登录(这里只介绍如何保证公钥为真,至于之后
阅读全文
摘要:首先来看看Map集合获取元素的三种常见方法keySet()、values()、entrySet() 1. values():返回map集合的所有value的Collection集合(于集合中无序存放) 1 import java.util.*; 2 3 public class Main{ 4 pu
阅读全文
摘要:眼睛一亮在论坛上发现一枚很有价值的评论赶紧抄下来... 记住java一定要用double,更鼓不变,就算数值不大也要用double。了解java虚拟机的底层会知道,float放在内存中其实是当作double来处理的,它不会比double更节约内存资源,对应的double虚拟机会直接以double形式
阅读全文
摘要:将csv数据导入mysql时发现一个有趣的问题行段的结束符是以\r\n而非一贯的字符串思维中的换行为\n于是乎就换行、回车整理了一些思路网上的说法是这样的:回车: Carriage Return新行:New LineLinux中\n表示回车+换行;Windows中\r\n表示回车+换行。(文件以\r
阅读全文
摘要:为了今后想问题不偏,提出容器和值的个人抽象概念 决定将指针变量、类型变量,归为容器;而对象(地址值直接抽象为对象)和值归为值。容器和对应包裹在内(指向)的值类型一致,处于真正核心的值被封闭起来必须通过容器来对外(用“封装”也不错),处理问题的永远是容器和容器类型。 既然说到指针变量和类型变量,我就想
阅读全文

浙公网安备 33010602011771号