Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Java 基础整理 #3

Open
Yuicon opened this issue Mar 9, 2018 · 3 comments
Open

Java 基础整理 #3

Yuicon opened this issue Mar 9, 2018 · 3 comments

Comments

@Yuicon
Copy link
Owner

Yuicon commented Mar 9, 2018

- 面向对象的三个基本特征

  1. 封装

面向对象的程序设计中,某个类把所需要的数据(也可以说是类的属性)和对数据的操作(也可以说是类的行为)全部都封装在类中,分别称为类的成员变量和方法(或成员函数)。这种把成员变量和成员函数封装在一起的编程特性称为封装。

  1. 继承

继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。

  1. 多态

多态性(polymorphisn)是允许你将父对象设置成为和一个或更多的他的子对象相等的技术,赋值之后,父对象就可以根据当前赋值给它的子对象的特性以不同的方式运作。简单的说,就是一句话:允许将子类类型的指针赋值给父类类型的指针。
实现多态,有二种方式,覆盖,重载。
覆盖,是指子类重新定义父类的虚函数的做法。
重载,是指允许存在多个同名函数,而这些函数的参数表不同(或许参数个数不同,或许参数类型不同,或许两者都不同)。

- 抽象类和接口有什么区别

接口和抽象类都是继承树的上层,他们的共同点如下:

  1. 都是上层的抽象层。
  2. 都不能被实例化
  3. 都能包含抽象的方法,这些抽象的方法用于描述类具备的功能,但是不比提供具体的实现。

他们的区别如下:

  1. 在抽象类中可以写非抽象的方法,从而避免在子类中重复书写他们,这样可以提高代码的复用性,这是抽象类的优势;接口中只能有抽象的方法。
  2. 一个类只能继承一个直接父类,这个父类可以是具体的类也可是抽象类;但是一个类可以实现多个接口。

- session 与 cookie 区别

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。

- session一致性的架构设计常见方法

session同步法:多台web-server相互同步数据
客户端存储法:一个用户只存储自己的数据
反向代理hash一致性:四层hash和七层hash都可以做,保证一个用户的请求落在一台web-server上
后端统一存储:web-server重启和扩容,session也不会丢失

- ArrayList和LinkedList的大致区别

  1. ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 (LinkedList是双向链表,有next也有previous)
  2. 对于随机访问get和set,ArrayList优于LinkedList,因为LinkedList要移动指针。
  3. 对于小数据量新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。

- java中创建线程的三种方法

  1. 继承Thread类创建线程
  2. 实现Runnable接口创建线程
  3. 使用Callable和Future创建线程

-CountDownLatch

等待多线程完成的CountDownLatch

-CyclicBarrier

同步屏障CyclicBarrier

-Semaphore

控制并发线程数的Semaphore

-Exchanger

两个线程进行数据交换的Exchanger

-ThreadLocal

ThreadLocal实现方式&使用介绍—无锁化线程封闭

-Java垃圾回收机制

Java垃圾回收机制(GC)相关问题

- 类加载机制

JVM 类加载机制详解
深入探讨 Java 类加载器

@Yuicon
Copy link
Owner Author

Yuicon commented Mar 20, 2018

- Java内存模型

Java内存模型
Java内存模型FAQ(一)

@Yuicon
Copy link
Owner Author

Yuicon commented Mar 20, 2018

- Java NIO

Java NIO 系列教程

@Yuicon
Copy link
Owner Author

Yuicon commented Mar 23, 2018

- Java线程池

深入理解Java之线程池

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant