基础概念

Posted ldl326308

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基础概念相关的知识,希望对你有一定的参考价值。

mysql
MySQL是一个关系型数据库管理系统
由瑞典MySQL AB开发
目前属于Oracle旗下产品
体积小、速度快、总体拥有成本低、开发源码

Redis:
redis是一款开源的、高性能的key-vue存储系统
字符串(String)、hash(哈希)、list(列表)、set(集合)、zset(sorted set有序集合)

Spring框架:
Spring是一个轻量级控制反转(IoC)和面向切面(AOP)的容器框架
Spring是非入侵式的
轻量、控制反转、面向切面、容器、框架
Spring在它的AOP模块中提供了对面向切面的编程的丰富支持。

MyBatis:
MyBatis是一款优秀的持久层框架,它支持制定SQL、存储过程以及高级映射。

Log4j:
Log4j是Apache的一个开源项目,通过使用Log4j可以控制日志信息输送的目的地
精确控制、强大、不改变业务逻辑代码

Jetty:
Jetty是一个开源的servlet容器,它为基于Java的web容器
易用性、可扩展性、易嵌入性、速度快、轻量

Tomcat:
Tomcat是Apache旗下的一个开源免费的web应用服务器

Jetty和Tomcat的比较:
相对于Tomcat,Jetty更轻量级
Jetty更灵活,体现在其可插拔性和扩展性,更易于开发者对Jetty本身进行二次开发
重量级的Tomcat原本便支持过多特性,要对其瘦身的成本远大于丰富的Jetty的成本
支持大规模企业级应用是,Jetty也许便需要扩展,这时选择Tomcat更优
*Jetty更满足公有的分布式环境的需求,而Tomcat更符合企业级环境

nginx
Nginx是一个高性能的HTTP和反向代理服务
轻量、占有内存少,并发能力强(使用Nginx的网站:百度、京东、淘宝、腾讯)
安装简单、配置文件简洁、Bug非常少

MVC:
MVC全名Model View Controller,是模型-视图-控制器的缩写,
一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,
耦合性低、重用性高、生命周期成本低、部署快、可维护性高

MVVM:
MVVM是Model-View-ViewModel的简写,本质上就是MVC的改进版
低耦合、可重用性、独立开发、可测试

IoC:
控制反转(Inversion of Control),是面向对象编程中的一种设计原则,最常见的方式叫做依赖注入,
通过控制反转,对象在被创建的时候,由一个调控系统内所有对象的外界实体,将其所依赖的对象引用传递给它

AOP:
AOP(Aspect Oriented Programming),意为面向切面编程
AOP是一个概念,一个规范,本身没有设定具体语言的实现

*OOP:
面向对象编程,针对业务处理过程的实体及其属性和行为进行抽象封装
以获得更加清晰高效的逻辑单元划分

AOP:
面向切面编程,针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,
以获得逻辑过程中各部分之间低耦合性的隔离效果

RESTful:
是一种架构风格、设计风格,不是标准,只是提供了一组设计原则和约束条件
基于这个风格设计的软件可以更简洁、更有层次、易于实现缓存等机制

多线程:
是指从软件或者硬件上实现多个进程并发执行的技术,具有多线程能力的计算机
因有硬件支持而能够在同一个时间执行多余一个线程,进而提升整体处理性能
同一类线程共享代码和数据空间,每个线程有独立的运行栈和程序计数器(PC)
线程切换开销小,线程是CPU调度的最小单位

进程:
每个进程都有独立的代码和数据空间,进程间的切换会有较大的开销,一个
进程包含1-n个线程,进程是资源分配的最小单位

***五个阶段:创建、就绪、运行、阻塞、终止

Hibernate:
开放源代码的对象关系映射框架,对JDBC进行了非常轻量的封装,它将POJO与
数据库表建立映射关系,是一个全自动的ORM框架

Shiro:
Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。
三个核心组件:Subject(操作用户)、SecurityManager(安全管理器)、Realms(数据源)

Java:
Java是一门面向对象的编程语言,具有功能强大和简易的特征
特点:简单性、面向对象、分布式、健壮性、安全性、平台独立性、可移植性等
一次编译,到处运行。

POJO:
简单的Java对象,实际就是普通的JavaBeans

ACID:
指数据库事务正确执行的四个基本要素的缩写
包含:原子性、一致性、隔离性、持久性

ORM:
对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型
系统的数据之间的转换

JDK:
JDK是Java Development Kit的缩写,是Java的开发工具包,
主要包含了各种类库和工具,也包含了一个JRE

JRE:
JRE是Java Runtime Environment的缩写,是Java程序的运行环境

JDK和JRE的区别:
JDK是Java的开发工具,它不仅提供了Java程序运行所需的JRE,
还提供了一系列的编译、运行等工具;JRE只是Java程序的运行环境,
它最核心的内容就是JVM(Java虚拟机)及核心类库。

Tomcat和JDK是什么关系:
tomcat是Java的web项目运行容器之一,JDK是Java运行环境,
Java没有JDK是无法编译运行的,Java必须依赖于JDK环境,
但是不一定要用Tomcat容器。

第一天

1.java是什么
Java是一门面向对象编程语言,具有功能强大和简单易用两个特征

 

2.java的特性是什么?
继承、封装、多态(抽象)

 

3.什么是java Ide?
IDE是集成开发环境,简单的说就是java开发工具,比如IDEA、Eclipse

4 JIT是什么
准时生产方式(Just In Time简称JIT)
精益生产方式JIT的主要特征表现为:  
(1)品质--寻找、纠正和解决问题;  
(2)柔性--小批量、一个流;
(3)投放市场时间--把开发时间减至最小;  
(4)产品多元化--缩短产品周期、减小规模效益影响;  
(5)效率--提高生产率、减少浪费;  
(6)适应性--标准尺寸总成、协调合作;
(7)学习--不断改善。

 

5. 构造函数的作用是什么?
对类进行初始化。

 


6. What is meant by Local variable and Instance variable?
类变量:独立于方法之外的变量,用static修饰
实例变量:独立于方法之外的变量,不过没有static修饰
局部变量:类的方法中的变量

7. 什么是类?
类是面向对象程序设计实现信息封装的基础,是一个模板,描述一类对象的行为和状态。

 


8 什么是对象?
万物皆对象,对象是客观存在的事物

 


9 OOP指的什么?
面向对象编程

 

 


10 StringBuilder与StringBuffer的区别?
StringBuilder:效率高,不安全
StringBuffer:相对于StringBuffer效率较低,但是安全

 


11. 对象的HashCode值有什么作用?
当集合要添加新的元素时,先调用这个元素的HashCode方法,能快速定位到它应该放置的物理位置
如果你要添加一个元素,如果通过HashCode方法查询到了它的位置,就再调用equals方法比较,相同就不存储了


12. toString()方法什么时候用到了?
通常只是为了方便输出

 

第二天

1.什么是继承
继承是面向对象最显著的一个特性,继承是从已有的类中派生出新的类,
新的类能吸收已有类的数据属性和行为,并扩展新的能力。


2.什么是封装
封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别。

 


3. 什么是多态
多态指同一个实体同时具有多种形式,它是面向对象程序设计(OOP)的一个重要特性,
同一操作作用于不同的对象,可以有不同的解释,产生不同的结果。

 

4.方法重载与重写有什么区别?
重载overload是一个类中多态的表现

重写override在子类中定义某方法与父类有相同的名称和参数

 

5. 抽象类与接口相同与不同之处? 他们分别什么时候使用?

1、继承抽象类,只需要实现抽象方法,不需要全部实现,引用接口,需要实现全部方法
2、抽象类有成员变量,接口没有成员变量

*抽象类特性:
1、抽象方法必须为public、protected
2、抽象类不能直接用来创建对象,必须由子类继承并实现其父类方法才能创建对象
3、抽象类可以继承抽象类,子类必须复制继承父类的抽象方法
4、只要包含一个抽象方法的抽象类,该方法必须要定义为抽象类

**抽象类适合用来定义某个领域的固有属性,也就是本质,接口适合用来定义某个领域的扩展功能
当需要一些类提供公共的实现代码时,考虑抽象类
注重代码的扩展性和维护性考虑接口

比如(人有性别,名字等等),用抽象 有些人喝酒抽烟,用接口

6.java有多少个访问修饰符? 各有什么含义?
private 私有访问,只能在本类中访问
public 公开访问 全部公开,其他包也可以用
default 没有访问修饰符 在包内都能用,但是不同包不可以
protected 受保护的 同类、同包、子类可以访问

 

7 . 数组与Arraylist的区别?
数组最高效,但是数组容量固定无法动态改变
ArrayList容量可动态改变,但牺牲效率


8 Hashtable与HashMap之间的区别?
Hashtable:线程安全、继承Dictionary类、不允许key或value为null、效率较低
HashMap:线程不安全、实现Map接口、允许key或value为null、效率高

9 Hashset与treeset之间的区别?
HashSet:数据无序排列
TreeSet:数据有序排列

10 java中有哪些典型的接口与类???
常用接口:Comparable、Collection、Set、List、Map、Runnable等
常用类:StringBuffer、String、System、Thread、Object、Math


11 集合的有序(ordered)与集合的排序是什么意思?
集合有序:先插入的数据在前,后插入的数据在后
集合排序:将集合的数据按照一定的规则排列

12 ArrayList与LinkedList的区别?
ArrayList的实现是基于数组,LinkedList的实现是基于双向链表
对于随机访问,ArrayList由于LinkedList
对于插入和删除操作,LinkedList由于ArrayList
LinkedList比ArrayList更占内存,因为LinkedList的节点除了存储数据
还存储了两个引用,一个指向前一个元素,一个指向后一个元素


第三天


1. 异常是什么?
异常指的是在程序运行过程中发生的异常事件,通常是外部问题导致的。

 


2. 检查异常是什么? 有哪些常见的检查异常
除了Error和RuntimeException的其它异常,检查异常强制要求程序员进行预备处理
常见的检查异常:SQLException、IOException、ClassNotFoundException

 


3. 运行时异常都是什么异常类型的子类?
RuntimeException


4. 异常处理的几个关键字有哪些?
try catch throws

 


5. throws是干什么用的?
声明方法可能回避的异常


6. 异常传播是什么?
自我理解:不做处理的异常,用throws回避的异常

 


7 .什么是序列化?什么情况下需要进行序列化
序列化是将对象的状态信息转换为可以存储或传输的形式的过程
当需要把对象写入到硬盘时,用套接字在网络上传输对象,通过RIM调用对象时。
RMI:远程调用对象,在JVM上调用另一个JVM对象

 

8、SerialVersionUID是什么?有什么作用??
序列化的版本号的意思
作用:序列化是保持版本的兼容性,版本升级时仍保持对象的唯一性。


10.什么是线程?
线程是程序执行流的最小单位


11 .java创建线程的方法有哪些?
继承Thread类创建线程
通过实现Runnable接口创建线程类
通过Callable和Future创建线程 















以上是关于基础概念的主要内容,如果未能解决你的问题,请参考以下文章

c++ 基础概念

iOS中的OpenGL:基础概念

逻辑基础知识逻辑的含义

SpringCloud基础概念

python基础概念

docker的基础概念