Java基础概念收集

Javaweb阶段
 
Jsp有哪些内置对象?做用分别是什么?
 
Page,pageContext,request,response,session,application,out,config,exception
Page指的是JSP被翻译成Servlet的对象的引用.
pageContext对象能够用来得到其余8个内置对象,还能够做为JSP的域范围对象使用.pageContext中存的值是当前的页面的做用范围》
request表明的是请求对象,能够用于得到客户机的信息,也能够做为域对象来使用,使用request保存的数据在一次请求范围内有效。
Session表明的是一次会话,能够用于保存用户的私有的信息,也能够做为域对象使用,使用session保存的数据在一次会话范围有效
Application:表明整个应用范围,使用这个对象保存的数据在整个web应用中都有效。
Response是响应对象,表明的是从服务器向浏览器响应数据.
Out:JSPWriter是用于向页面输出内容的对象
Config:指的是ServletConfig用于JSP翻译成Servlet后 得到Servlet的配置的对象.
Exception:在页面中设置isErrorPage=”true”,便可使用,是Throwable的引用.用来得到页面的错误信息。
 
什么是cookie?Session和cookie有什么区别?
Cookie是会话技术,将用户的信息保存到浏览器的对象.
Session也是会话技术,将Session的信息保存到服务器的对象.Session是基于Cookie的 利用Cookie向浏览器回写JSessionID.
 
 
 
 
JavaSe基础知识
(1)进制:
 二进制: 以0b开头
 八进制: 0-7组成,以0开头.
 十进制: 默认.
 十六进制:由0-9,A-F(不区分大小写)组成,以0x开头
(2)静态变量 成员变量 局部变量的区别
书写位置
静态 :类中方法外 加了一个关键字 static
成员: 类中方法外 没有static
局部: 方法内
内存:
静态:方法区里面的静态区
成员:堆
局部:栈
生命周期
静态:随着类的加载而加载 随着类的消失而消失(虚拟机停掉才会消失)
成员:随着对象的建立而存在 随着对象消失而消失(当一个对象没有任何指向的时候 过一段时间垃圾回收器就会来清理)
局部:随着方法的调用而存在 随着方法的执行完毕而消失
初始化:
静态:有默认初始化
成员:有默认初始化
局部:没有了默认初始化 因此在使用以前必须先赋值 
(3)重载和重写的区别:
重写:发生在子父类中 子类出现和父类如出一辙的方法 才是方法的重写
子类重写父类的方法
重载:发生在一个类中 只要知足  方法名相同  参数列表(顺序  个数  类型)不一样 与返回值无关的方法
就叫作他们之间构成相互重载
(4)构造方法:
建立对象时必定会执行.  没有返回值 构造方法名必须和类名一致 能够写一个单独的return;
(5)有参构造和Set方法的区别
有参构造方法,是在建立对象的同时 顺便给成员变量进行赋值 ,强调的是建立对象
而set方法  就是为了给成员变量赋值的一个方法
(6)static静态
1:随着类的加载而加载 随着类的消失而消失(虚拟机停掉 才会消失)
2:优先于对象而存在
3:被 包含静态的这个类的全部对象 共享
4:不只能用对象名调用 还能用类名直接调用(推荐类名调用)
(7)权限修饰符的访问权限:
private: 是为本类准备的
默认:是为同一个包下的类准备的
protected:是为子类准备的 不管子类在任何地方
public: 为全部类准备的
(8)final:关键字
final修饰的类:不能被继承
final修饰的方法:不能被重写
final修饰的变量是常量: 常量只能被赋值一次
(9)代码块:
局部代码块:
在方法内部{}
限定变量生命周期,及早释放,提升内存利用率
构造代码块:
在方法外面 类里面 {}
每建立一次对象 就执行一次 并且是在构造方法执行前执行的,因此说就能够把构造方法里面的共性内容写到构造代码块里面
静态代码块:
在方法外面 类里面 static{}
随着类的加载而执行  只执行一次
作一些全局初始化的内容
(10)this和super的区别:
this表明当前对象的引用  不只能够调用本类的 也能够调用父类的(本类没有的前提下才能调用父类的)
super表明的是父类内存空间的标识
 
(11)Object
Object:是一切类的超类或父类
Object的hashCode():返回该对象的哈希值(根据地址值算出的一个int数字)
不一样对象的hashCode()值通常不一样, 相同对象的hashCode值相同
Object的getClass():返回该对象的字节码文件对象
Object的toString()
1):咱们在打印一个对象的时候,默认调用的对象的toString方法,若是该对象没有重写toString()那么调用的
Object的toString()方法,由于继承了Object嘛
2):Object的toString方法 返回   类的全路径名称 + @ + 16进制哈希值, 这样返回通常没有意义
3):因此咱们通常在编写类的时候 都重写Object的toString(),通常要求是把类里面的属性都显示出来
Object的equals()
1):Object中equals方法的源码
public boolean equals(Object obj){
  return (this == obj);
}
比较的引用类型的地址值,开发中 咱们调用equals方法是想比较对象里面的属性值
2):因此在编写类的时候通常重写Object中的equals方法,让其比较对象的属性值
 
== 和 equals 的区别? 
(1)==  比较的是 内存中的地址值  equals重写以后比较的是属性值,不然等价于 == .
(12)抽象类abstract:
特色:
1)抽象类里面能够没有抽象方法,可是有抽象方法的类必须得是抽象类
2)抽象类不能被实例化
3)普通子类继承抽象类,必须所有重写抽象类里面的抽象方法,要不子类也是抽象类
 
(13)el表达式: 为了让jsp写起来更加简单。
${ }
 
***(14)poi 导出电子表格
 
(15)JDBC的优势:
            直接底层操做,提供了很简单、便捷的访问数据库的方法,跨平台性比较强。灵活性比较强,能够写很复杂的SQL语句。
    JDBC的缺点:
           由于JAVA是面向对象的,JDBC没有作到使数据可以面向对象的编程,使程序员的思考仍停留在SQL语句上。
             操做比较繁琐,不少代码须要重复写不少次。
            若是遇到批量操做,频繁与数据库进行交互,容易形成效率的降低。
(16)shiro 权限管理:
怎么管理 .
 
(17)LINUX经常使用命令:
ls查看文件权限 / 目录信息
cd 切换目录
pwd     查看当前工做目录路径
mkdir建立文件夹
rm      删除一个目录中或多个文件和目录
rmdir   从一个目录中删除一个或多个子目录项
mv      移动文件或修改文件名
cp复制
find    基于查找功能
tar对文件进行打包
time    测算一个命令的执行时间
(18)线程建立的两种方式:
1. extends thread 类
2. implements runnable 接口(更好的解耦合)
(19)wait 和 sleep 的区别:
wait:属于object 类,释放同步锁 ,不须要捕获异常
 无限期,除非调用notify
sleep:属于 thread类,不释放同步锁 ,须要捕获异常
  有时间限制,调用interreput() 能够强行打断
(20)hibernate 缓存: (提升检索效率)
一级缓存: session(会话级)级别的缓存,随着session的关闭而销毁
 
二级缓存: 称为全局缓存 / 应用级缓存 
可以使用范围: 当前应用的全部会话
    要建立一个ehcache.xml 配置文件
   何时使用:  不多被修改的数据 ,容许少许并发.
 
(21)表单提交两种方式GET和POST的区别:
        * GET的提交的参数会显示到地址栏上,而POST不显示.
        * GET每每是有大小限制的,而POST没有大小的限制.
        * GET没有请求体,而POST有请求体.form表单用post
 
(22)XML的解析方式有哪些:
       * DOM和SAX:
           * DOM一次性将文档加载到内存,造成树形结构.若是文档过大容易致使内存溢出.方便增删改的操做.
           * SAX边读边解析的方式,若是文档大,不会致使内存溢出,可是不能进行增删改.
 
(23)Servlet的生命周期:(*****)
生命周期:就是一个对象从建立到销毁的过程.
Servlet生命周期:Servlet从建立到销毁的过程.
* 什么时候建立:用户第一次访问Servlet建立Servlet的实例
* 什么时候销毁:当项目从服务器中移除的时候,或者关闭服务器的时候.
用户第一次访问Servlet的时候,服务器会建立一个Servlet的实例,那么Servlet中init方法就会执行.任何一次请求服务器都会建立一个新的线程访问Servlet中的service的方法.在service方法内部根据请求的方式的不一样调用doXXX的方法.(get请求调用doGet,post请求调用doPost).当Servlet中服务器中移除掉,或者关闭服务器,Servlet的实例就会被销毁,那么destroy方法就会执行.
  
(24)四大域对象:
pagecontext:页面范围的数据
servletrequest:请求范围的数据
Httpsession:会话范围的数据
servletcontext:应用范围的数据.
 
(25)事务特性:原子性,一致性,隔离性,持久性
    什么是会话:用户打开一个浏览器访问页面,访问网站的不少页面,访问完成后将浏览器关闭的过程称为是一次会话.
 
(26)上传和下载的条件和方式
文件上传:
使用fileupload:
得到磁盘文件工厂对象
经过工厂得到核心解析类
解析request对象,返回集合,集合中的内容是分割线分红的每一个部分
遍历每一个部分
三要素:
1.提交方式必须为 post提交
2.必须有name属性  <input type="file" name="upload">
3.enctype="multipart/form-data"
技术:
servlet 3.0
JSPSmartUpLoad
FileUpload(必须导入2包)
fileupload包
io包
struts2
文件的下载:
2个头 1个流:
(27)转发与重定向 的 区别:
转发:1.一次请求 一次响应
2.地址栏不会改变
3.只能在本网站内访问
4.路径不用加工程名
重定向: 1.两次请求,两次响应
2.地址栏会改变
3.能够定向到任意网站
4.要加工程名.
(28)静态包含和动态包含的区别:( <%@ include%> 和<jsp:include> )
静态(1个class):至关于发现了以后 直接所有复制过来 而后翻译成Servlet,编译成一个class文件    
包含(多个class):各个文件都已经编译好了,这个地方只包含的结果 前面定义的变量在这个地方不能继续使用
 
 
(29)设计模式:
建立型模式:
单例模式 :
保证一个类只有一个实例,而且提供一个访问该实例的全局访问点.优势:提升了系统性能 / 节省内存 
应用场景:
[1]任务管理器 Task Manager
[2]回收站 Recycle Bin
[3]网站计数器 
[4]文件系统
[5]Spring中每一个bean默认都是单例的(action是例外),优势是Spring容器能够管理
[6]在servlet编程中,每一个servlet也是单例
[7]在spring MVC / struts1框架中,控制器对象也是单例
五种单例实现方式:
主要:
饿汉式:线程安全 调用效率高 不能延迟加载
(1)私有构造器 (别人访问不了)
(2)private static 属性
(3)提供一个public方法
 
懒汉式:线程安全 调用效率不高 能够延迟加载 
其余:
双重检测锁式:
静态内部类式:
枚举单例:
工厂模式  
抽象工厂模式  
建造者模式  
原型模式
结构型模式:
适配器模式  
桥接模式 
装饰模式 
组合模式  
外观模式  
享元模式 
代理模式
行为型模式:
模版方法模式 命令模式 迭代器模式  观察者模式  中介者模式
备忘录模式  解释器模式  状态模式 策略模式 职责链模式 访问者模式 
 
(30)栈是先进后出的线性表
 
    栈具备记忆做用
 
(31)cookie 和session 的区别:
一、cookie数据存放在客户的浏览器上,session数据放在服务器上。
二、cookie不是很安全,别人能够分析存放在本地的COOKIE并进行COOKIE欺骗
  考虑到安全应当使用session。
三、session会在必定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
  考虑到减轻服务器性能方面,应当使用COOKIE。
四、单个cookie保存的数据不能超过4K,不少浏览器都限制一个站点最多保存20个cookie。
 
(32)一、Java基础
集合框架.doc
多线程详解.doc
单例模式和多线程结合.doc
I/O详解.doc
Socket和TCP/IP详解.doc
 
二、框架简介
SpringMVC优点
SpringMVC和Struts2的区别
Spring注解、事物的实现
AOP+IOC简单介绍
Hibernate和MyBatis的区别、各自优缺点
 
三、电商项目
开发流程
电商业务
架构梳理
用到的技术、各自技术的好处;
 
(33)git 和 svn 的区别:
   1.GIT是分布式的 , svn 不是.
   2.GIT把内容按元数据方式存储,而svn是按文件
   3.GIT和SVN的分支不一样
   4.GIT没有一个全局的版本号,而svn有
   5.GIT的内容完整性要优于SVN,底层用的是SHA-1 哈希算法.   
   6.SVN必须先update才能commit
(34)为何从上家公司离职?
从技术的角度来讲,IT技术迭代很是快,杭州这座城市最近几年IT发展的很是快.
 
(35)录音心得:
孙雪岩:
简历:
      用熟悉不用精通! 
技术描述须要分层次,好比熟悉的放前面,理解的放中间,了解的放后面.如此排版便可
项目描述:
SOA架构
Tomcat服务器
内容管理系统
单点登陆系统
搜索系统
订单系统
Redis缓存
页面静态化
Nginx 负载均衡/反向代理
(35)http协议请求的几种方式:
get:对服务器资源的简单请求
post:用于发送包含用户提交数据的请求
head put delete trace options connect
(36)集合的种类 ? list 和 set 的区别? arraylist 和 linkedlist 区别 ?
Collection :单列集合
List:有序 能够重复  有索引 能够经过索引对元素进行操做
ArrayList
LinkedList
Vector
Set:无序 不能够重复
HashSet
TreeSet
 
Map:双列集合
特色:
双列集合   Collection是单列集合
键不能够重复,值能够重复。Set:无序 不能够重复
数据结构针对键有效
(37)事务: 最小的逻辑操做单元!  必须同时成功或者同时失败.
怎么处理事务 ? spring 来控制,放在service层
 
(38)hibernate和mybatis的区别
 
 
(39)springmvc 表现层
mybatis 持久层
spring  业务层  控制反转IOC/面向切面AOP   管理bean对象的建立 springfactory 
aop 加强代码 ,动态代理.
       就是一个容器 把其余整合在一块儿 .前端接收回显数据
controller接口请求封装参数 调用service(具体的业务逻辑)  service调用dao持久层(主要链接数据库,与数据库作交互).
(40)static静态的理解,加载的前后顺序
 
(41)对java反射的理解?  动态加载一个类,获取类的内部结构,来动态调用.
 
代码抽取的时候.
 
(42)基本数据类型和引用数据类型的区别
byte int short long float double boolean char 在内存中的一个地址存放这些数值,一个变量指向的是这个内存地址
而其余属性类对象,在内存中引用的内存地址而不是具体的值
 
(43)pom / shiro 
 
(44)echarts  纯js的图标库,流畅运行在pc和移动设备,兼容绝大部分浏览器
 
(45)回调:就是A类中调用B类中的某个方法C,而后B类中反过来调用A类中的方法D,D这个方法就叫回调方法
 
(46)分布式计算的优势
可靠性(容错) :
分布式计算系统中的一个重要的优势是可靠性。一台服务器的系统崩溃并不影响到其他的服务器。
可扩展性:
在分布式计算系统能够根据须要增长更多的机器。
资源共享:
共享数据是必不可少的应用,如银行,预订系统。
灵活性:
因为该系统是很是灵活的,它很容易安装,实施和调试新的服务。
更快的速度:
分布式计算系统能够有多台计算机的计算能力,使得它比其余系统有更快的处理速度。
开放系统:
因为它是开放的系统,本地或者远程均可以访问到该服务。
更高的性能:
相较于集中式计算机网络集群能够提供更高的性能(及更好的性价比)。
(47)分布式计算的缺点
故障排除:
故障排除和诊断问题。
软件:
更少的软件支持是分布式计算系统的主要缺点。
网络:
网络基础设施的问题,包括:传输问题,高负载,信息丢失等。
安全性:
开发系统的特性让分布式计算系统存在着数据的安全性和共享的风险等问题。
(48)并发锁

(1)减小锁的持有时间(缩小锁的范围)
(2)下降锁的请求频率(下降锁的粒度)
(3)放弃使用独占锁,使用并发容器,原子变量,读写锁等等来代替它。前端

相关文章
相关标签/搜索