java一句话总结【1】

  1. java程序员需要精通的三个主题

    • 作为编程语言的Java
    • OOP面向对象编程
    • Java API
  2. JDK、JRE、JVM三者的区别
  3. 面向对象编程(OOP)是通过对真实对象模拟应用程序来工作的,OOP的三个原则是封装、继承、多态。
  4. java程序从编写到运行的过程:

    • 编写代码
    • 编译,将源代码编译成字节码
    • 运行,不同平台的虚拟机程序将字节码解释为机器代码还是虚拟机直接调用系统呢?
  5. 使用命令行对java程序进行编译和运行
  6. 字符集ASCII,Unicode,字符编码UTF-8,UTF-16,UTF-32
  7. ASCII字符仍然在软件编程中占据统治地位,Java除注释、标识符、字符和字符串内容外,几乎所有的输入元素都使用ASCII。
  8. 出于运行速度的考虑,java并不是所有的东西都是对象。创建和操作对象相比基本类型要更加昂贵。
  9. java的变量分为两种类型,即引用类型和基本数据类型。变量是一种数据占位符。
  10. 计算机内存储数值的时候都是以补码形式存储的,所以要了解补码的计算。
  11. 字面量有三种类型:基本类型字面量、字符串字面量、null字面量
  12. 基本类型的转换,隐式转化【扩大】和显示转换【缩小】。
  13. 按位求补运算符 ~,把操作数转换成二进制数字,并把所有的位进行反转。再把补数转换为10进制数,输出。
  14. &与&&,|与||的区别是什么?
  15. 三目运算符 ? :可以简化 很多代码
  16. 移位运算符,无符号右移运算符【这个对精度有要求的计算题的时候好像用处挺大】
  17. 有一些一元运算符和二元运算符,会引起自动升级,如从byte到int类型
  18. 语句是进行某项事情的指令,它控制程序执行的顺序。
  19. 表达式是运算符和操作数的组合。
  20. 类和对象的区别,整体与个体的区别。
  21. null没有值,比如申明一个对象,然后没有赋值。
  22. 基本类型分配在栈中,java对象则放在栈中。
  23. 封装这种OOP原则的机制是:保护对象需要确保安全的部分,只暴露对象可以安全暴露的部分。封装和访问权限控制符有着密不可分的关系。
  24. 类访问控制符:public 类公共、缺省访问控制只能被同一个包中的其他类使用。
  25. 类成员访问控制符【此处注意缺省的从子类是不能访问到的】

    | 访问级别 | 从其他包中的类 | 从同一个包中的类 | 从子类 | 从同一个类 |
    | --------- | -------------- | ---------------- | ------ | ---------- |
    | public | 是 | 是 | 是 | 是 |
    | protected | 否 | 是 | 是 | 是 |
    | 缺省 | 否 | 是 | 否 | 是 |
    | private | 否 | 否 | 否 | 是 |

  26. 构造方法并不都是public的,在单例模式中就是private的
  27. 关键字this可以从任何方法或者构造器引用当前的对象。
  28. final修饰变量值不可修改,方法不可以重写,类不能被继承
  29. public static final 加个变量就是常量了
  30. 变量的作用域是指变量的可访问性两个原则:块中定义的变量只能在块中访问;嵌套块可以访问外层块中声明的变量。
  31. 方法重载就一个方法名,但是传入的参数个数或者类型不一样。静态方法也可以重载。
  32. 传值还是传引用---传值,引用(地址值)也是值。【高司令】
  33. 加载、连接和初始化

    • JVM加载到内存中
    • 加载:JVM将java类的二进制形式加载到内存中,并可以将它缓存在内存中,以便将来再次使用这个类。如果没有找到指定的类就会抛出错误,进程在这里就结束
    • 链接:

      • 验证:JVM根据java编程语言和JVM语句要求检查这个二进制的形式。如果篡改经过编译后创建的类文件,那么这个类文件可能就不能再使用了。
      • 准备:准备要执行的指定的类,这包含给这个类的静态变量和其他数据分配内存空间。
      • 解析【可选】:是检查指定的类是否引用了其他的类/接口,是否能找到和加载其他的类/接口。这些检查将针对被引用的类/接口递归进行。
  34. 类加载时候的初始化:初始化就发生在指定main方法之前,但在指定的类可以初始化之前,它的父类必须先初始化。递归的加载链接父类。
  35. 对象创建的初始化【JVM的操作】:

    • 给新对象分配内存空间,在类中声明的实例变量的空间以及它的父类中声明的实例变量的空间。
    • 处理被调用的构造器。如果构造器有参数,JVM就给这些参数创建变量,并将传递到构造器的值赋给它们。
    • 如果被调用的构造器以对另一个构造器的调用开始(使用this关键字),那么JVM就处理这个被调用的构造器。
    • 给这个类执行实例初始化和实例变量初始化。未赋值的实例变量会被赋缺省值。
    • 执行被调用构造器主体的剩余部分
    • 返回指定新对象的引用变量
  36. 注意:实例初始化不同于静态初始化,静态初始化在类加载的时候,实例初始化在创建对象的时候。在进行任何实例化之前,先执行静态初始化。
  37. 对象的比较,==比较的是引用,而在现实的使用中这种意义不大。通常是来比较值是否完全一致的,而比较值完全一致,一般用equals方法。但是在equals方法的底层,即Object类中,其实就是比较的引用。不过其他的类,在继承Object类的同时一般会重写equals()方法。
  38. 垃圾回收器,销毁不用的对象,不用的对象是值不再引用的对象或者引用已经超出作用域的对象。

本文链接:

https://heyzen.club/index.php/J/274.html
1 + 9 =
快来做第一个评论的人吧~