知识总结(1):基础概念

本文介绍了编程的基本概念,包括如何与计算机交流,以及Java中的jre、jdk和jvm的区别。还详细讲解了访问修饰符、this关键字、static的用法、面向对象特性、抽象类和接口、hashCode与equals的关系,以及BIO、NIO和AIO的异同。此外,文章还涵盖了反射机制和String的特性,如常量池和final修饰。
摘要由CSDN通过智能技术生成

1. 什么是编程

编程是人和计算机交流的方式。我们通过编程告诉计算机某个问题的解决思路、方法、手段,让计算机根据编程指令去完成,解决问题。

2. jre、jdk、jvm概念

  • jre:包含了java运行所需的基本内容(运行所需的基础类库,包括了jvm)
  • jdk:包含了jre、java代码编译工具、开发工具(监控工具、打包工具等)
  • jvm:java程序运行所必须的环境

3. 四种访问修饰符访问范围

  • public:当前类
  • protected:当前包、同包
  • default:当前类、同包、子类
  • private:当前类、同包、子类、其他包

4. this 关键字三种用法

  1. 直接引用:相当于指向当前对象本身
  2. 形参与属性名重复,使用this区分
  3. 构造函数中使用

5. static关键字

  • 关键作用:形成静态代码,优化程序性能(static只会在类加载时执行一次,一些只需进行一次的初始化操作都放在static代码块中进行)
  • 特点:static修饰的变量/方法都不属于任何一个实例对象,而是所有该类的对象所共享

6. 面向对象

  • 特性:抽象、封装、继承、多态

抽象:一般用于方法,将方法抽象成接口,只需关注属性、行为,无需关注细节内容
封装:将底层的类等信息封装成私有,防止暴露重要信息

7. 抽象类和接口

  1. 抽象类用abstarct修饰、接口用interface修饰
  2. 类只能继承一个父类(extends),但是可以实现多个接口(implements)
  3. 接口不能有构造器,且字段默认是static和final

8. hashCode 与 equals

概述

  • hashCode():用于获取hash码(int整数),定义在JDK的object类中,java任何的类都有hashCode()函数。

当将对象放入hashSet中时,会根据对象的hashCode作为标识进行位置查重等操作,若是发现有相同的,则会调用equals()方法检查对象是否也相同,如若都相同,则将其作为同一对象处理。

  • 两个对象相同,则hashcode相同且调用equals()为true。因此,若重写(覆盖)equals()方法,则hashCode()方法也必须覆盖,否则该类的不同对象,就是指向的数据相同也永远都不会相等。

9. BIO 、 NIO 、 AIO

  • BIO:同步阻塞IO

传统IO,使用简单,并发处理能力低

  • NIO:同步非阻塞IO

通过Channe通信,实现多路复用

  • AIO:异步非阻塞IO

基于事件、回调机制

10. 反射机制

使用举例

  1. JDBC连接数据库时 Class.forName():通过反射加载数据库的驱动程序
  2. Spring通过XML配置模式转载Bean过程,根据字符串名称反射获取类
  1. 将XML/properties 配置文件加载入内存;
  2. 解析配置内容,获取对应字节码字符串、相关属性信息
  3. 利用反射机制,根据字符串获取类实例

11. 反射的三种方式

//方式一: getClass()方法
MyClass demo = new MyClass();
CLass instance = demo.getClass();
//方式二:forName(类路径)方法
Class instance2 = Class.forName(com.cn.MyClass);
//方式三:类名.calss
Class instance3 = MyClass.class;

12. String特性

  1. 不变性:String是只读字符串,任何写操作都是创建新对象,在被多线程访问时能够保证数据一致性;
  2. 常量池优化:String对象创建后,会在常量池中缓存,若下次创建相同字符内容,则会直接指向常量池缓存内容;
  3. final修饰:String类不能被继承,提高系统安全性
  4. HashMap中,String作为key能够确保key唯一、安全,且有常量池缓存,访问无需重新计算,效率高。
  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值