学习简记

2018/2/26

  1. git 的rebase 操作是什么意思, git 的checkout 和reset 操作的区别, 复习了 git workflow
    参考资料
  2. 对 alibaba/jvm-sandbox 工具进行了进一步调研,了解了 jvm 的类加载机制、双亲委派机制,通过实际查看java.lang.ClassLoader 文件了解了类加载器之间的父子关系是通过组合而非继承来实现的,jvm 将类加载的过程放在了 jvm 之外。
    了解了 jvm-sandbox 的大致工作原理、框架以及如何使用。
    相关笔记
    参考资料:《深入理解Java虚拟机 第2版本》 周志明 著 机械工业出版社
  3. 对 java 字节码的内容组织规则进行了大概了解。字节码可以被 jvm 执行,可以根据字节码规范逆向生成 java文件。magic number, 常量池,常量索引
    参考资料

挖坑:什么是依赖注入和控制反转,设计模式的几个基本原则是什么?

2018/2/27

  1. git 的chekout 和 reset
    checkout 会取消工作区的修改,而不会取消暂存区的修改
    reset 分为 soft 和 hard 两个选项,默认为 soft,对具体的文件而非版本不能应用 hard,hard 会冲掉工作区和暂存区的所有内容。
    参考资料

2018/3/1

  1. maven 中的 snapshot 版本和正式版本区别
    maven 处理正式版本的时候,一般会先看本地是否已经下载过了该版本的依赖,如果有,则不会从远程仓库中获取。在频繁开发的过程中,这种处理方式很蛋疼。因为我们依赖的其他项目如果有改动,除非每次提交的时候升级版本,否则都无法获取到该项目最新的改动。
    而在处理 snapshot 版本的时候,不管本地是否已经存储了该版本的依赖。会优先查看远程仓库中是否有最新的发布,如果有的话,就会优先从远仓库中获取该发布。
    snapshot 版本一般用于内部开发的时候使用,当该版本稳定之后,才会出一个不带 snapshot 的正式版本。当然,对于 snapshot 从远端的仓库中获取依赖的频率也可以在 maven 中配置。
    参考资料

2018/3/9

  1. java 中的注解
    java 注解和 interface, class 一样,属于一种类型,一般用 @interface 来表示,定义的时候和 class 一样。
    java 的注解就相当于一种标签,我们可以给一个类或者接口做注解,也可以对类的属性、方法做注解,可以对方法的参数进行注解等等,甚至可以对 package 进行注解。java 内置了 5 种元注解,可以理解为注解的注解,包括 @Retention、@Documented、@Target、@Inherited、@Repeatable。
    定义注解:注解只有属性没有方法,其属性在定义的时候用无参成员函数来表示。
    使用注解:注解的使用很简单,只要在定义相应的类、属性、方法、变量等地方添加注解即可
    解析注解:注解的解析则使用到了 java 的反射机制,我们需要自己根据自己的设计来解析注解,有很多框架提供了很便利的方式来解析注解
    参考资料

  2. java 的 @resource 注解
    同样是用来注入的,加了 @resource注解的 字段可以不用我们在代码里面手动初始化,类似于 spring 里面的 @autowire

2018/4/12

  1. java 的 interface 和 abstract class
    interface 奇奇怪怪的继承:
    interface 被另一个 interface 可以实现继承,但interface的父类必须是interface
    A extends B,A和B中只要有一个是interface,另一个也必须是 interface

abstract class 可以被继承,不可以被实现
继承的类除非全部实现父类的方法,否则也必须声明为abstract class

  1. 构造函数未解之谜
    java中每个类会默认带有一个无参构造函数,类实现的时候自行定义了构造函数,默认的构造函数会被覆盖。此时如果还要通过无参构造函数来实例化类的对象,需要自行定义无参构造函数。

  2. java 类中静态代码块,构造代码块,构造函数的执行顺序
    执行顺序为:
    1.静态代码块 2.构造代码块 3.构造函数
    其中静态代码块只执行一次,而构造代码块和构造函数会在每次实例化类的时候调用
    参考资料

  3. java 构造函数调用链
    先调用父类的构造函数,然后调用子类的构造函数
    在子类的实例方法中,可以通过super成员来调用父类的实例方法(能够访问到的情况下)
    子类的构造函数被调用的时候,会调用父类的构造函数,如果子类构造函数中没有显示调用父类的构造函数,则会默认调用父类的无参构造函数。

  4. java多态实现
    静态多态通过重载方式实现,动态多态通过覆盖方式实现

  5. java传参方式
    java真正意义上只有一种传参方式,就是按值传递
    java中对象都是通过new的方式产生的,存储在堆中,

  6. for 循环中定义变量
    for循环里面是可以定义变量的,内部还是外部定义都可以,效率其实差别不是很大

2018/4/26

SAP Anywhere 产品的总结
Anywhere 开发所涉及到的技术、框架以及工具。
后端开发语言为 java,IDE为eclipse,版本控制工具为git,持续集成环境为jenkins。

git 基本操作
ssh 的基本原理和概念
非对称加密的原理和基本算法
maven 脚本的编写

你可能感兴趣的:(学习简记)