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创建线程?
(编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|