java测试简答题总结

1.简要说明oracle空间不足的可能的情况及解决方式?(10分)
空间不足可能原因:
一是临时表空间空间太小,排序等大型操作过于频繁.
二是不能自动扩展。
三数据库磁盘空间占满,数据量过大.
表空间不足解决方法:增加表空间有两种方法: 修改数据文件大小, 增加数据文件。
方法一:修改数据文件大小
alter tablespace 表空间名称
add datafile 表空间存放路径 size 表空间大小 autoextend on next 增长的大小 maxsize 空间最大值(如果不 限制空间最值就用unlimited)
例:alter tablespace GENERAL2
add datafile ‘/oradata1/res189/GENERAL201.dbf’
size 10G ; --这边我用了两分钟,公司的服务器
查看表空间详情:
select f.* from dba_data_files f where lower(f.tablespace_name)=‘general2’
方法二:增加数据文件
alter database
datafile 表空间文件路径
AUTOEXTEND(自动扩展) ON NEXT 表空间满后增加的大小
2.网站访问量过大,session会出现很多问题怎么解决?
1.将session用cookies 替换了,或者使用QuseryString
2.解决并发问题最好的方法就是锁住资源sychronized
4. 可以做负载均衡,分散到不同的机器上
5. 可以持久化到磁盘或者数据库,减少内存占用。
6. 如果允许,适当缩短过期时间,这个是临时的方案
3.ajax的优缺点?
优点:<1>.无刷新更新数据。
<2>.异步与服务器通信。
<3>.前端和后端负载平衡。
<4>.基于标准被广泛支持。
<5>.界面与应用分离。
缺点:<1>.AJAX干掉了Back和History功能,即对浏览器机制的破坏。
<2>.AJAX的安全问题。
<3>.对搜索引擎支持较弱。增大网络数据的流量,从而降低整个系统的性能
<4>.破坏程序的异常处理机制。
<5>.违背URL和资源定位的初衷。
<6>.AJAX不能很好支持移动设备。
<7>.客户端过肥,太多客户端代码造成开发上的成本。
4.jsp和servlet有什么区别和联系?
1.jsp经编译后就变成了servlet(jsp本质就是servlet,jvm只能识别java的类,不能识别jsp代码,web容器将jsp的代码编译成jvm能够识别的java类)
2.jsp更擅长表现于页面显示,servlet更擅长于逻辑控制
3.servlet中没有内置对象,jsp中的内置对象都是必须通过HttpServletRequest对象,HttpServletResponse对象及HttpServlet对象得到
4.jsp是servlet的一种简化,使用jsp只需要完成程序员需用输出到客户端的内容,jsp中的java脚本如何镶嵌到一个类中,由jsp容器完成,而servlet则是个完整的java类,这个类的service方法用于生成对客户端的响应
5.mysql数据库引擎?
数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以 获得特定的功能。现在许多不同的数据库管理系统都支持多种不同的数据引擎。MySQL的核心就是存储引擎。
四种常见的存储引擎:
myisam:MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物。
memory:MEMORY存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。
innodb:InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,上图也看到了,InnoDB是默认的MySQL引擎
archive:在这里插入图片描述
6.通过查询语句优化数据查询效率?
一:为数据库放弃引擎索引进行全表扫描,在where字句中避免以下几点:
1.!=或<>操作符
2.进行 null 值判断
3.不能前置百分号, like ‘%abc%’
4.n 和 not in 也要慎用
5.使用 or 来连接条件
二:很多时候用 exists 代替 in 是一个好的选择
三:尽量使用表变量来代替临时表
7,oracle数据库用于导入数据库的命令是什么?是否有参数可以只导入表数据,如果有参数名是什么?(注:命令或参数写关键词即可)(10分)
导出:exp system/manager
导入:imp system/manager
有,参数名为:dbtools in   : 从文件装入参数表或历史数据到数据库
8.对象在什么时候成为垃圾对象并被释放?(5分)
1.没有引用指向
2.只有弱引用指向并且不回收弱引用对象的话存储区无空间
3.虚引用指向的对象
4.在下一个垃圾回调周期中,这个对象将是被可回收的
9.count(*)、count(1)、count(column)的区别(10分)
count()对行的数目进行计算,包含NULL
count(column)对特定的列的值具有的行数进行计算,不包含NULL值。
count(1)还有一种使用方式,count(1)这个用法和count(
)的结果是一样的。
如果表没有主键,那么count(1)比count()快。
如果有主键,那么count(主键,联合主键)比count(
)快。
如果表只有一个字段,count()最快。
10.能用plsql导出blob数据吗?有什么方式可导出blob数据?(10分)
能 PL/SQL 
1.Oracle Export 导出为.dmp的文件格式,.dmp文件是二进制的,可以跨平台,还能包含权限,效率也很不错,用得最广
2.Developer导入导出工具 导出为.pde格式的,.pde为Pl/sql developer自有的文件格式,只能用Pl/sql developer自己导入导出,不能用编辑器查看。
11.char型变量中能不能存贮一个中文汉字?为什么? (10分)
1.java采用unicode编码,2个字节(16位)来表示一个字符, 无论是汉字还是数字,字母,或其他语言都可以存储。
2.char 在java中是2个字节,所以可以存储中文。
12.GC是什么? 为什么要有GC?(5分)
GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存的目的,Java语言没有提供释放已分配内存的显示操作方法。
Java有了GC,就不需要程序员去人工释放内存空间。当Java虚拟机发觉内存资源紧张的时候,就会自动地去清理无用变量所占用的内存空间。当然,如果需要,程序员可以在Java程序中显式地使用System.gc()来强制进行一次立即的内存清理。
13.请说明 SOA和Webservice的区别。(10)
1.SOA是一种架构模式,而WebService是利用一组标准实现的服务。
2.SOA本身应该是“如何将软件组织在一起”的抽象概念,它依赖于用xml和 webservice实现并以软件的形式存在的更加具体的观念和技术,此外,它还需要安全性,策略管理,可靠消息传递以及会计系统的支持,SOA才能有效的工作.
3.SOA概念没有确切地定义服务具体如何交互,而仅仅定义了服务如何如何交互以及相互理解,其中具体的区别,就是定义如何执行流程的战略和如何执行流程的战术之间的区别。而另一个方面,webservice在需要交互的服务之间如何传递消息有具体的知道原则,这就是SOA服务和webservice在设计方面的区别。
14.优化Oracle数据库,有两种方式.
数据库性能最关键的因素在于IO,因为操作内存是快速的,但是读写磁盘是速度很慢的,优化数据库最关键的问题在于减少磁盘的IO,就个人理解应该分为物理的和逻辑的优化, 物理的是指oracle产品本身的一些优化,逻辑优化是指应用程序级别的优化
物理优化的一些原则:
1). Oracle的运行环境(网络,硬件等)
2). 使用合适的优化器
3). 合理配置oracle实例参数
修改最大连接数:alter system set processes=2000 scope = spfile;
禁止回收站功能:alter system set recyclebin=off scope=spfile;
4). 建立合适的索引(减少IO)
5). 将索引数据和表数据分开在不同的表空间上(降低IO冲突)
6). 建立表分区,将数据分别存储在不同的分区上(以空间换取时间,减少IO)
逻辑上优化(开发有关):
1). 可以对表进行逻辑分割,如中国移动用户表,可以根据手机尾数分成10个表,这样对性能会有一定的作用
sql语句上的优化
2). Sql语句使用占位符语句,并且开发时候必须按照规定编写sql语句(如全部大写,全部小写等)oracle解析语句后会放置到共享池中,如: select * from Emp where name=? 这个语句只会在共享池中有一条,而如果是字符串的话,那就根据不同名字存在不同的语句,所以占位符效率较好
3). 数据库不仅仅是一个存储数据的地方,同样是一个编程的地方,一些耗时的操作,可以通过存储过程等在用户较少的情况下执行,从而错开系统使用的高峰时间,提高数据库性能
4). 尽量不使用
号,如select * from Emp,因为要转化为具体的列名是要查数据字典,比较耗时
5).Oracle的解析器按照从右到左的顺序处理处理FROM子句的因此子句中写在最后的表(基础表 driving table)将被最先处理,在FROM子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。如果有3个以上的表连接查询, 那就需要选择交叉表(intersection table)作为基础表, 交叉表是指那个被其他表所引用的表。
6). Where字句 规则Oracle 中Where子句时从右往左处理的,能过滤掉非常多的数据的条件应该放在where的末尾, 另外!=符号比较的列将不使用索引,列经过了计算(如变大写等)不会使用索引(需要建立起函数), is null、is not null等优化器不会使用索引
7). 使用Exits Not Exits 替代 In Not in 【不会使用索引】
8). 合理使用事务,合理设置事务隔离性数据库的数据操作比较消耗数据库资源的,尽量使用批量处理,以降低事务操作次数
9).为常用的查询字段建立索引 永远给每一个表建立主键 外键建立外键关联
10).尽量在应用层使用缓存 必须redis

15.JDK JRE JVM 的区别与关系.
1.JDK 用于开发,JRE 用于运行java程序 ;如果只是运行Java程序,可以只安装2.JRE,无序安装JDK。
3.JDK包含JRE,JDK 和 JRE 中都包含 JVM。
4.JVM 是 java 编程语言的核心并且具有平台独立性。
16.数据库游标是什么?
游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值