Java基础知识(三)

Oracle的逻辑组件和物理组件

逻辑组件:看不见的,(表空间,段,区,数据块,表)
物理组件:数据文件dbf,控制文件ctl,日志文件log
Oracle的url:jdbc:oracle:thin:@localhost:1521:orcl
Jdbc:Java数据库连接,jdbc一般做三件事,连接数据库 2、发送SQL语句 3、(从数据库)接收处理结果
Oracle:oracle数据库
Thin:连接方式为thin方式,即瘦方式,不需要客户端的方式。与之对的另一种连接方式为胖方式:cli,这种方式需要安装
客户端
Localhost:本地IP
15211:数据库监听窗口
Orcl:就是数据库默认的实例

事务的使用

事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;
这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元);
事务的特性(ACID)
1、原子性(Atomicity): 事务中所有操作是不可再分割的原子单元。事务中所有操作要么都执行成功,要么都执行失败。
2、一致性(Consistency): 事务执行后,数据库状态与其他业务规则保持一致。如转账业务,无论事务执行成功与否,参与
转账的两个账户余额之和应该保持不变。
3、隔离性(Isolation): 一个事务所做的修改在最终提交之前,对其他事务是不可见的
4、持久性(Durability): 一旦事务提
交,则其所做的修改就会永久的保存到数据库中

锁是什么

事务在操作数据库的资源时会给系统提出请求,锁住这个资源,在事务没有释放锁的时候,其他事务不能操作这个资源。
锁是干什么用的
就是用来锁住资源,只能一个事务同时操作。

锁的种类

表级锁:锁住表
表级锁分为排他锁和共享锁
共享锁:有共享锁的事务可以对数据进行读取,但是不能修改数据,每一个事物都可以加共享锁读取
排他锁:加排他锁的事务不仅可以读取数据,还能修改数据,而其他的事务不能同时操作数据。
行级锁:锁住表的某一行

service层你是如何看待的,用来做什么,能做什么,

service层又被称作业务层,是用来处理业务逻辑,它就相当于是srviet和dao层的缓冲层,dao变化不会直接影响到service。
service层在项目中你是如何部署的
Service接口+实现类,实现类调dao接口处理业务,controller层通过工厂获取对应的service。
sql:(用在哪里,怎么用,什么时候用)
Sql是结构化查询语句,用于数据库的增删改查,通过insert、select等标签来对数据库的数据进行操作
项目中我们需要对用户进行增删改查,那么就需要在dao层里使用到sql语句。

Oracle的自增长序列

在oralce主键的自增长ID就是用到序列
先create一个自增序列,然后再insert语句.Nextval就可以使用了
一般我们项目的表主键的ID都需要自增长,那么新插入数据就需要用到序列

Oracle的索引

Oracle的索引是一种供服务器在表中快速查找的一个行的数据结构,
提高查询效率,当表的某个字段一直被where时,加索引提高效率。

Oracle的视图

视图就是一个虚拟表
把一个比较复杂的查询语句 不想每次都写很多语句 就可以写个视图
①简化了操作,把经常使用的数据定义为视图。
②安全性,用户只能查询和修改能看到的数据。
③逻辑上的独立性,屏蔽了真实表的结构带来的影响
使用 Create view 视图名 as + 具体的查询

交并集关系

[1,7,9,10], [2,7,8,9]
交集:7,9
并集:1,2,7,8,9,10

html:

什么叫做html,干什么用的,在哪里用,为什么需要用html
是超文本标记语言,类似一阶段的jpane画板,用来展示界面元素的,
当我们需要去展示数据的时候
常见的一些标签有哪些?

<table></table><td></td><tr></tr><form></form><imgsrc=”图片地址”><body></body><title></title><a><div>

html的格式结构

无论是动态还是静态页面都是以“<html>”开始,然后在网页最后以“</html>”结尾。
<html>”后接着是“<head>”页头,其在<head></head>(放js,css等)
<title></title>
<body>编写页面</body>

比如html为根节点,没有父节点,然后他下面有两个子节点,head和body,head里有一个title子节点,head就是title的父节点。
在xx标签中应 该写哪些东西
标签里的内容,css,id,name

什么是块级元素和行级元素,特点分别是什么

一般像div,table,form,h1标签是块级元素,而像a,img,input,select是行标签
块级元素都是新起一行,内容包括块级和行级,高度和宽度是可调的
行级元素一般是和其他元素标签在一行,而且高度宽度不可调,行元素只能包含行元素。
除了块级和行级元素还有哪些元素?
顶级元素,比如html,和body

css:

三种写法(分别写在哪里,并且你用的是哪一种)
在head里写style标签引用,外部引用,直接在标签元素上设置
我使用的是外部引用
选择器有哪些?9种选择器最好都要能说出来,常用的有哪些
标签选择器:例如a{} 过滤所有a标签
类选择器:.aaa{},那么引用aaa的标签修改css样式
ID选择器:# name id=”name”那么id为name的元素标签修改样式
分组选择器(可一次选择多个标签以设置相同样式)
后代选择器(选择某个标签的所有后代以设置相同样式)
属性选择器(通过属性(如name属性)进行选择以设置相同的样式)
.通用选择器(选择所有标签以设置相同样式)
兄弟选择器(选择兄弟关系的标签设置样式)
直接父子选择器(选择父子关系的标签中子标签设置样式)
常见的css的属性(笔试中可能会有css题目)
Float:left/right;靠左/右浮动
width 宽度
height 高度
margin 外补距
padding 内补距
border 边框
font-size 文字大小
font-weight 文字加粗
background 背景属性
position 定位属性

父元素塌陷(float)

1、同级元素只要有一个ui元素设置了float,那么不管任何的同级元素都应该设置float属性,不然有可能样式被覆盖
2、当有父子级关系的时候,子元素设置了宽高,父元素没设置宽高,但是父元素会根据子元素的宽高自适应调整,
把子元素包裹起来(没设置float的时候)
当子元素设置了float之后样式就浮动起来了,连父元素都不知道他什么样,还以为没有样式,就不予理睬,并且
父元素没有宽高,所以就变成一条线了
解决方案:
1、同级元素如果有float,那么其他的同级元素也要float
2、子元素如果有float,那么父元素没设置宽高的时候,也要设置float

布局:

布局的种类有哪些(table、float(css+div)、frameset、flex(弹性布局)、方位(position))
你最常用的布局是哪一种,float
需要注意哪些?
float布局有哪些特点?
loat属性值挨着前一个float后的位置定位,如果剩下的空间不足,则会另起一行,另起一行也有特点,并不是直接在整个父
元素下另起一行。另起一行要优先满足围绕上一个float元素。

绝对定位和相对定位以及fix定位的区别

Fix定位:就是元素浮起来了,不占页面位置,定位是以浏览器窗口为参考
绝对定位:提升可层级,先当于云可以移动遮住下面的元素属性,定位是以浏览器为参照
相对定位:也是提升层级,只是定位是以自身位置,并且原先的位置会影响到后续元素排版
z-index是干什么用的
提升层级,越大就在越上面
left、top、bottom、right分别在什么情况下使用
一般是在绝对定位中使用
方位布局是什么时候用?

js:

三种写法(分别写在哪里,并且你用的是哪一种)
行内直接javascript:alert()
Script标签
外部引用js文件
我使用的是外部引用js

js的分类:

(js基础(ECMA), BOM, dom)

分别是做什么用的

ECMA是语言标准,比如数据的类型,对象,语法
BOM: 览器对象模型,它使 JavaScript 有能力与浏览器进行“对话”
比如alert啊,location,history
DOM:就是操作html访问所有元素
比如document.getElementById,.value,function,修改CSS属性,

为什么用Tomcat

tomcat 是WEB服务器,你编写了JSP网页要显示就要挂在服务器上,tomcat就是服务器。

BS和CS有什么区别

CS的客户端和服务器都要开发,而BS只要开发服务器,
CS的维护比较麻烦,对设备还有要求(比如要装java环境)

Tomcat和ServerSocket区别是什么?

Tomcat是短连接,ServerSocket是长连接
长连接和短连接区别,优缺点,以及使用场景
长连接就是发送完数据不断开,一直保持连接,不断发送数据包,比如数据库的连接就是长连接
而短连接就是数据发送完就断开连接,就是每次连接只完成一项业务,浏览器的业务请求就是短连接

数据访问方式种类,常见种类(GET POST…),这两种访问的区别是什么

Get,post
Get请求的数据长度有限制,post无限制
Get请求可被缓存,post不会缓存
Get请求可以被收藏为书签,post不行

浏览器端的调试是如何做到的?你是如何调试一个业务的?

现在浏览器运行展示功能,然后通过Console控制台查看报错信息,404还是500或是js报错就能判断是前端还是后端报错,然后解决完后刷新界面测试结果。
数据访问形式(servlet)
servlet是web开发的一个标准,主要用来浏览器与服务器 的数据交互的,
当浏览器发送url请求到服务器,web.xml找到对应的servlet处理对应的业务请求,再返回数据到浏览器
相对路径和绝对路径的访问方式(url你是如何写的)

<img src="img/xxx.jpg">
<img src="http://ip:port/项目名/img/xxx.jpg">
<img src="/项目名/img/xxx.jpg">

使用场景,哪一种比较好,为什么用那一种
绝对路径更好点,因为如果用相对路径,name文件上传会让项目越来越大。

servlet干什么用,如何配置

用来处理业务请求的,在web。Xml里配置servlet的名称和对应的包路径,然后业务请求通过url-pattern访问对应的serlvet.

servlet的生命周期

在请求该serlvet时Servlet 通过调用 init () 方法进行初始化
service() 服务过程,选择doGet \ doPost
直到长时间不调用、服务器关闭才销毁

servlet的工作原理

在客户端发送url请求时,服务器移交给servlet,servlet容器(用来管理servlet对象)解析请求根据web。Xml配置信息找到相对应的servlet处理业务,然后servlet容器返回数据
servlet的常用的方法

什么叫做数据重定向

重定向:你先去了A局,A局的人说:“这个事情不归我们管,去B局”,然后,你就从A退了出来,自己乘车去了B局。
通过各种方法将各种网络请求重新定个方向转到其它位置

什么叫做数据请求转发

是一种服务器的行为,当客户端请求到达后,服务器进行转发,此时会将请求对象进行保存,地址栏中的 URL 地址不会改变,
得到响应后,服务器端再将响应发送给客户端,从始至终只有一个请求发出
转发:你先去了A局,A局看了以后,知道这个事情其实应该B局来管,但是他没有把你退回来,而是让你坐一会儿,自己到后面办公室联系了B的人,让他们办好后,送了过来。

fiter的作用,如何配置

filter用于拦截用户请求,过滤器Web.

filter的生命周期

服务器启动时机就会自动调init方法进行初始化,并被加载到内存里边,知道服务器关闭调用desctry方法销毁。

filter的工作原理

		Filter过滤器在客户端进行业务请求的时候,在他到达servlet之前进行拦截,通过doFilter方法处理放行。
		编码格式为什么会出现乱码?解决方式?
		编码格式不为UTF-8引起的乱码,修改编码格式为UTF-8
		作用域的种类(request,session,application,page)

Request:是一个请求,只要发出一个请求就会建一个request,作用域只在当前请求有效
Session:服务器会为每个会话创建一个session对象,session中的数据可供当前会话中所有servlet共享,直到关闭浏览器会话才会结束。
Application:当服务器启动时,自动创建一个application对象,直到服务器关闭。
一台服务器一般有多个web目录,也就是网站,访问同一个网站的客户他们可以共享application对象。

作用域你常用哪一种

request

框架最常用哪一种作用域

session

xxx作用域的工作原理

在客户端第一次发送请求到服务器时,服务器会新建一个session对象,对象里有一个map存储key也就是sessionID和value也就是内容信息
等到下一次客户端发送请求时,通过sessionID去找对应的value.

xxx作用域的作用范围

ession中的数据可供当前会话中所有servlet共享,也就是当前浏览器
cookie是什么,工作原理,以及cookie和session的关系
Cookies是web站点放置到你的硬盘上的程序。它们驻留在你的计算机上收集关于你在因特网上所做的一切事情的信息,并且web站点可以在任何时候读取到Cookies收集到的所有信息。

cookie数据存放在客户的浏览器上,session数据放在服务器上
cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗 考虑到安全应当使用session
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE

session是通过cookie来工作的,通过cokkied可以获取到session的sessionID,从而获取到内容信息。

jsp的工作原理

客户端通过JSP页面向服务器发送请求,服务器根据请求找对应的servlet处理业务,并返回数据给JSP,jsp将界面修改展示。
jsp的解析流程
Jsp先把文件解析成java文件
然后javac把java文件编译成。Class文件
然后虚拟机再把。Class文件转成html格式
最后显示在客户端

jsp是什么

动态网页技术,就是可以在html上写java代码
jsp在哪里用?为什么我们使用jsp…
不用考虑兼容问题,在界面上可以插入java代码,减少请求的次数。

ajax:

页面异步处理技术,可以不刷新整个页面进行局部的数据更新
提升用户体验,减少不必要的数据往返,最关键的就是实现局部的刷新
ajax和from表单有什么区别
Form需要刷新整个界面,ajax不用,ajax必须要js才能使用,form在页面里提交
常见的内部属性有哪些?
Url:请求的地址
Type:请求的方式,post或是get
Data:请求传输的参数
DataType:返回的数据类型
xxx属性是干什么用的
你为什么用jquery封装的ajax呢?
Jquery是一个快速的、简洁的javascript框架
减少代码量,让我们dom操作写法更简单
项目中的前端js代码就是用jquery来代替了原有的js代码

其他:
JSON的多种类型使用、
数据库连接池(工作原理)、
数据库,获取Connection的时候是最耗时的,所以连接池,就是项目启动的时候初始化几十个连接对象(Connection)
放在集合中,需要的时候去连接池的集合中取出来使用,用完再放回去,而不是关闭
线程池在哪里用、
日志的种类,以及使用方式、
加密(RSA)

jsp中的动态include和静态include是什么意思?

代码导入,仅仅是等于iframe的业务,通过dom的技术进行将html或jsp文件进行引入

J2EE中包含的EJB不是很理解

1、就像是spring的IOC一样实现了Bean类的实例化
2、他可以作为服务器的传输介质,进行网络数据传递

线程同步你用了那种技术?你还了解哪些的线程同步技术。

sync...
lock
...
线程同步主要是干什么用?防止数据被同时操作而产生的歧义,如果数据进行同时操作就会出现不可想象的错误
	例如:抢购,商品1件,如果有2个用户同时购买,如果没有加上线程同步,那么意味着这两个用户都能购买
		如果加上同步,系统会随机一个用户先去购买,而另一个用户就等待

sync 又有很多的使用方式....

Oracle工作原理

Oracle 很大;
Oracle 是一个软件,并且是一个C/S架构的软件
	客户端登录需要输入:jdbc:oracle:thin:@localhost:1521:orcl以及用户名和密码才能够登录
通过客户端的登录这边可以看出,Oracle安装时候需要配置 全局数据库名:orcl
其实就是一个文件夹内部存放的就是 数据库必要的数据文件(DBF、LOG、CTL)
	分别存放的是:表空间,用户; 操作日志和访问日志; 操作细节(数据回滚)
	所以这三个文件也统称为物理组件
	而在DBF中所存在的看不见的数据:表空间-》就叫做逻辑组件

全局数据库名:orcl 可以有多个,数据库安装的时候就会默认叫我们创建一个,叫做orcl
DBF文件中存在表空间,表空间中存在用户,用户中存在表 -》 Oracle的内部机制
	1个DBF文件有几个表空间?1
		1个DBF文件只能有1个表空间
		1个表空间可以存放在多个DBF文件中
		
		例如:我们创建DBF文件的时候, size 50m
			CREATE TABLESPACE 表空间名称 DATAFILE 'dbf文件路径' SIZE 50M;
	
	1个表空间可以有多少个用户?n
		1个表空间中可以有n个用户,1个用户绝对只能在一个表空间中
	
	1个用户可以有多少张表? n
		用户之间的表是独立存在的
		也就是说一个表空间下,
			用户A : ADMIN
			用户B : ADMIN
		那么这两张表相同吗?1-相同 : 0-不同,答案:0

Oracle还有
	序列、事务,锁、视图、索引

service层你是如何看待的

service其实叫做业务层
	做的是:1、数据判断;2、各种事情统一处理,组成一个业务;3、事务(一次性完成);4、错误的日志(日志记录等)
		文龙买菜:他老妈叫他买酱油和猪肉
			2件事情:1、买酱油;2、买猪肉
				业务:买菜
		在代码中:一个service方法可能需要调用1个或多个dao方法
		整个买菜的事情文龙完成的,也就是说是同一个人完成一个业务
		在代码中:一个Connection完成所有的dao方法

service层在项目中你是如何部署的

我的项目中使用了xxx框架
	有用框架:spring:
		由spring通过IOC的方式,在xml中进行配置,配置扫描器,然后service层的每一个类添加service注解
		之后在service的全局变量配置mapper对象,在service的方法中调用mapper的方法
		并且通过spring设置了事务
		还配置了AOP作为错误日志的打印
	
	没有用框架:mvc的结构:
		工厂创建service,而service在servlet调用,service里面调用dao的方法

用啥替换了MyBatis的缓存

当查询了一次数据之后,下次再进行相同信息的查询的时候,直接走内存,不去数据库查询了
效率大大提高;要求:sqlsession必须是同一个才可以

1、我们采用框架之后,sqlsession使用之后立即关闭,所以缓存就不能在MyBatis使用了
2、查询到数据之后立即返回给客户端,客户端显示,并且该客户端在项目中不可能再次查询相同数据
	如果短时间内多次查询相同业务,说明客户端有问题,我必须采取措施;
没有任何技术替换

你们在项目中如何使用异常的?

AOP 捕获异常写入日志
AOP 抛出异常 事务处理
Controller层,404,500的异常页面跳转(由springmvc帮助我们完成)

异常日志你是如何实现的

2种说法:
	1、写入日志文件
	2、写入数据库

什么是线程池,在哪有用到过?

有很多的线程存放在集合中
很多用户访问的时候,应用会开起线程进行使用
	因为线程的启动也是很慢的,我们预备了很多的线程放在集合中,有需要的时候,取出来使用,用完归还回去

用户访问
错误日志文件写入

线程的实现方式有哪些?你觉得那种比较好

继承0和实现1

oracle跟sqlite的区别

sqlite属于单机版文件访问形式的数据库,安全性,稳定性以及效率方面不如oracle,sql语法就是阉割版

jsp在哪里用?为什么要使用jsp ? jsp原理以及与html的区别

java serve page ,在java服务器用
	jsp属于动态的页面技术,他可以比较方便的渲染界面效果,el和jstl表达式
	简化我们的代码量
当浏览器第一次访问服务器的时候,需要访问jsp页面的时候,那么服务器会对jsp进行解析,解析成java文件
java文件内容是:如果是html代码就通过流的方式发送给客户端(浏览器),如果是java代码就直接执行
然后将java代码通过Jdk进行编译,编译成class文件,执行class文件
所以jsp比html效率低

当浏览器访问服务器的时候,需要访问html页面的时候,直接以流的形式写出

所以springboot推荐html

PowerDesigner有什么好处

编辑数据库的表结构,然后可以以图形界面展示,并且还能够导出sql语句

PowerDesigner在什么时候使用

设计数据库的时候,以及修改数据库之后,重新生成文件

日志有哪些?

(文件日志,文件日志有哪些;数据库日志:数据库日志又有哪些)
文件日志:
初始化日志(项目名,作者,创建时间,运行在什么系统上,内存占用)
访问日志(有客户访问就进行记录)
错误日志(当出现异常情况进行记录) - 0
操作日志(当执行增删改查业务的时候进行日志记录)
数据库日志:
生命周期日志
消费流水日志
后台操作日志
后台错误日志

项目中使用了哪些日志?

JSON的多种类型使用

JSON其实是字符串的一种格式,对象(map):{} 数组(集合):[],内部的数据都是 
key:value形式进行保存,之间用逗号隔开

Gson - Google
原生6个jar
FastJson - 阿里
Jackson - 作者为了纪念迈克尔杰克逊所以取了这个名字(spring默认推荐)

衍生:如何进行数据配置
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值