美文网首页
学习简记

学习简记

作者: lazysong | 来源:发表于2018-02-26 16:28 被阅读0次

    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 脚本的编写

    相关文章

      网友评论

          本文标题:学习简记

          本文链接:https://www.haomeiwen.com/subject/prmyxftx.html