1.String是最基本的数据类型吗?String和StringBuffer的区别?

不是。Java中的基本数据类型只有8个:byte,short,int,long,float,double,char,boolean,除了基本类型(primitive type),剩下的都是引用类型(reference type),枚举类型(enumeration type)也是引用类型。其中 byte 一个字节,short两个字节,int四个字节,long八个字节,char两个字节。

区别:
()String:是对象不是原始类型.为不可变对象,一旦被创建,就不能修改它的值.对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.String 是final类,即不能被继承。
()StringBuffer:是一个可变对象,当对他进行修改的时候不会像String那样重新建立对象。它只能通过构造函数来建立对象被建立以后,在内存中就会分配内存空间,并初始保存一个null.向StringBuffer中付值的时候可以通过它的append方法.

2.int和Integer有什么区别?

int是基本数据类型,Integer是引用数据类型;
int默认值是0,Integer默认值是null;
int类型直接存储数值,Integer需要实例化对象,指向对象的地址。

3.运行时异常与一般异常有何异同?

.定义不同,运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等。一般异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。
.处理方法不同,运行时异常是不检查异常,程序中可以选择捕获处理,也可以不处理。对于一般异常,JAVA编译器强制要求用户必需对出现的这些异常进行catch并处理,否则程序就不能编译通过。
.发生原因不同,运行时异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。面对这种异常不管我们是否愿意,只能自己去写一大堆catch块去处理可能的异常。

4.说出Servlet的生命周期,并说出Servlet和CGI的区别?

服务器启动时(web.xml中配置load-on-startup=,默认为0)或者第一次请求该servlet时,就会初始化一个Servlet对象,也就是会执行初始化方法init(ServletConfig conf),该servlet对象去处理所有客户端请求,service(ServletRequest req,ServletResponse res)方法中执行,最后服务器关闭时,才会销毁这个servlet对象,执行destroy()方法。

区别:
)较好的可移植性。由于Java语言具有跨平台和可移植性强的特点,使得Sevlet也有较好的可移植性, 即无须修改代码就可以部署到多种不同类型的Web服务器上。
)执行效率高。由于CGI针对每个请求都会创建一一个进程来处理, 而Servlet针对每个请求创建一个线程来执行,而创建线程比创建进程的开销要小,所以,与CGI相比,Servlet在交互过程中有更短的响应时间, 响应效率更高。
)功能强大。Servlet可以与Web服务器进行交互,而CGI却无法与Web服务器直接交互。
)使用方便。Servlet 提供了许多非常有用的接口用来读取或设置HTTP头消息,处理Cookie和跟踪会话状态等。
)可扩展性强。由于Servlet是由Java语言编写的,所以,它具备了Java 语言的所有优势

5.说出ArrayList,Vector,LinkedList的存储性能和特性。

ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchronized 方法(线程安全),
通常性能上较 ArrayList 差,而LinkedList 使用双向链表实现存储,按序号索引数据需要进行前向或后向遍历,但是插入数据时只需要记录本项的前后项即可,所以插入速度较快。

中科软:

1.struts 核心控制器

Struts1:
ServletAction继承于HttpServlet,是struts1.x中和核心控制器。
Struts 2:
FilterDispatcher是Struts 2框架的核心控制器,该控制器作为一个Filter运行在Web应用中,它负责拦截所有的用户请求,当用户请求到达时,该Filter会过滤用户请求。如果用户请求以action结尾,该请求将被转入Struts 2框架处理。

2.hibernate和mybatis哪个好用为什么 线程实现方式

3.jstl

JSTL(Java server pages standarded tag library,即JSP标准标签库)是由JCP所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。

4.集合

集合有两个父接口,一个collection,一个Map;
而collection有两个子接口,一个List,一个Set;
List有两个常见的实现类 ArrayList,LinkedList;
Set有两个常见的实现类 HashSet,TreeSet;
Map有两个常见的实现类 HashMap,HashTable。

5.过滤器 拦截器

1.过滤器(Filter):过滤器就是过滤的作用,在web开发中过滤一些我们指定的url,比如过拦截掉我们不需要的接口请求,修改请求(request)和响应(response)内容,完成CORS跨域请求等等
2.拦截器(Interceptor):是面向切面编程(AOP,Aspect Oriented Program)的。就是在Service或者一个方法前调用一个方法,或者在方法后调用一个方法。比如动态代理就是拦截器的简单实现,在调用方法前打印出字符串(或者做其它业务逻辑的操作),也可以在调用方法后打印出字符串,甚至在抛出异常的时候做业务逻辑的操作。

6.jsp内置对象

1、request对象
request 该对象代表了客户端的请求信息
2、response对象
response 代表的是对客户端的响应,
3、session对象
session 对象是由服务器自动创建的与用户请求相关的对象。
4、application对象
application 对象可将信息保存在服务器中,直到服务器关闭,
5、out 对象
out 对象用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。
6、pageContext 对象
pageContext 对象的作用是取得任何范围的参数
7、config 对象
config 对象的主要作用是取得服务器的配置信息。
8、page 对象
page 对象代表JSP本身,只有在JSP页面内才是合法的。
9、exception 对象
exception 对象的作用是显示异常信息

7.四大作用域

1.    page域:    只能在当前jsp页面使用                (当前页面)
2. request域: 只能在同一个请求中使用 (转发)
3. session域: 只能在同一个会话(session对象)中使用 (私有的)
4. context域: 只能在同一个web应用中使用 (全局的)

8.Ajax

AJAX 可以使网页实现异步更新。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

中科软 

1.一个单例

单例模式
public class Singleton {
private Singleton(){
}
private static volatile Singleton instance = null;
public static Singleton getInstance() {
if (instance == null) {
synchronized(Singleton.class) {
if (instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}

2.介绍线程死锁

线程死锁,当线程为了安全及同步时,用全局信号 量进行相互等待或是相互制约时程序 进入 了一个死锁状态 时(两个线程都停掉了)叫线程死锁。

3.AJAX怎么写有什么用

$.ajax({
type: "POST",
url: "ShowProduct.aspx/GetDHList",
data: '{CategoryId:"' + CategoryId + '"}',
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function (data) {
var item = eval(data.d);
var StrHtml = "";
for (var i in item) {}
}, async: false
});
第二种:
$(document).ready(function(){
$("#b01").click(function(){
htmlobj=$.ajax({url:"/jquery/test1.txt",async:false});
$("#myDiv").html(htmlobj.responseText);
});
});
第三种:
$.ajax({ url: "test.html", context: document.body, success: function(){
$(this).addClass("done");
}});

4.XML解析方式

DOM(Document Object Model) 生成和解析XML文档。由W3C提供的接口,它将整个XML文档读入内存,构建一个DOM树来对各个节点(Node)进行操作。

SAX(Simple API for XML) 生成和解析XML文档。SAX不用将整个文档加载到内存,基于事件驱动的API(Observer模式),用户只需要注册自己感兴趣的事件即可。

DOM4J生成和解析XML文档。dom4j是目前在xml解析方面是最优秀的(Hibernate、Sun的JAXM也都使用dom4j来解析XML),它合并了许多超出基本 XML 文档表示的功能,包括集成的 XPath 支持、XML Schema 支持以及用于大文档或流化文档的基于事件的处理

JDOM生成和解析XML 。 JDOM与DOM非常类似,它是处理XML的纯JAVA API,API大量使用了Collections类,且JDOM仅使用具体类而不使用接口。

5.JDK与JRE

JDK与JRE的区别
JRE: Java Runtime Environment
JDK:Java Development Kit
JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。

6.内存回收机制

分配内存与回收内存的标准是八个字:分代分配,分代回收。
由于字符串、对象和数组没有固定大小,所有当他们的大小已知时,才能对他们进行动态的存储分配。JavaScript程序每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放这些内存以便他们能够被再用。

7.断点快捷键

快捷键 功能描述
F8 单步调试,不进入函数内部
F7 单步调试,进入函数内部
Shift+F7 选择要进入的函数
Shift+F8 跳出函数
Alt+F9 运行到断点
Alt+F8 执行表达式查看结果
F9 继续执行,进入下一个断点或执行完程序
Ctrl+F8 设置/取消当前行断点
Ctrl+Shift+F8 查看断点

8.自动装箱拆箱

自动装箱,就是自动将基本数据类型转换为包装器类型;自动拆箱,就是自动将包装器类型转换为基本数据类型

9.jquery

jQuery是一个快速、简洁的JavaScript框架,它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和Ajax交互。

10.jsp指令和动作各自原理

三个指令:
page
include
taglib 标签指令
六个动作:
< jsp:include > 动态包含
< jsp:forward> 请求转发
< jsp:param> 设置请求参数
< jsp : useBean>
< jsp : setProperty> 给指定的对象属性赋值
< jsp : getProperty >取出指定对象的属性值

中科软

1.css样式怎么定义

1.新建一个HTML页面,命名为test.html,用于对CSS样式定义的说明。
2.在test.html页面定义一个div元素,并且通过<style type="text/...
3.给div定义CSS样式,可以直接使用元素div作为选择器来实现样式定义。

2.oracle分页

String sql =
"select * from " +
(select *,rownum rid from (select * from students order by postime desc) where rid<=" + pagesize*pagenumber + ") as t" +
"where t>" + pageSize*(pageNumber-1);

3.8种基本类型

4.final,finally,finalize的区别

一、final :
1、修饰符(关键字) 如果一个类被声明为final,意味着它不能再派生新的子类,不能作为父类被继承。
2、将变量或方法声明为final,可以保证他们使用中不被改变。被声明为final的变量必须在声明时给定初值,而以后的引用中只能读取,不可修改,被声明为final的方法也同样只能使用,不能重载。
二、finally:
在异常处理时提供finally块来执行清楚操作。如果抛出一个异常,那么相匹配的catch语句就会执行,然后控制就会进入finally块,如果有的话。
三、finalize:
是方法名。java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除之前做必要的清理工作。这个方法是在垃圾收集器在确定了,被清理对象没有被引用的情况下调用的。
finalize是在Object类中定义的,因此,所有的类都继承了它。子类可以覆盖finalize()方法,来整理系统资源或者执行其他清理工作。

5.怎么启动线程

继承Thread类
1.自定义类MyThread继承Thread类
2.MyThread类重写run方法。
实现Runnable接口
1.自定义类MyRunnable实现Runnable接口
2.重写run()方法
3.创建MyRunnable类的对象
4.创建Thread类的对象,并把步骤3创建的对象作为构造参数传递
5.启动线程

6.java为什么是跨平台的

因为Java程序编译之后的代码不是能被硬件系统直接运行的代码,而是一种“中间码”——字节码。然后不同的硬件平台上安装有不同的Java虚拟机(JVM),由JVM来把字节码再“翻译”成所对应的硬件平台能够执行的代码。因此对于Java编程者来说,不需要考虑硬件平台是什么。所以Java可以跨平台。

7.get,post请求的区别

1、    Get请求提交的数据会在地址栏显示出来,而post请求不会再地址栏显示出来
2、 传输数据的大小
http Get请求由于浏览器对地址长度的限制而导致传输的数据有限制。而POST请求不会因为地址长度限制而导致传输数据限制。
3、 安全性,POST的安全性要比GET的安全性高。由于数据是会在地址中呈现,所以可以通过历史记录找到密码等关键信息。

8.list和set的区别

List是有序的Collection。Java List一共三个实现类: 分别是ArrayList、Vector和LinkedList。
Set是唯一的,不可重复的,常用的实现类有HashSet、TreeSet、LinkedHashSet

9.hashmap怎么用

HashMap根据键的hashCode值存储数据,大多数情况下可以直接定位到它的值,因而具有很快 的访问速度,但遍历顺序却是不确定的。 HashMap最多只允许一条记录的键为null,允许多条记 录的值为 null。HashMap 非线程安全。

10.还有ajax怎么实现同步和异步

AJAX中根据async的值不同分为同步(async = false)和异步(async = true)

11.还有文件传输怎么传

第一种:以字符串传参的方式发送到指定的接口取出其值(多个就采用数组)
第二种:采用流传输的方式传接口,这种可以批量传输且,大小无限制,支持多种类型文件上传

12.sevrlet 生命周期

①服务器加载Sevrlet。
②创建Sevrlet,只有在请求Sevrlet时,才会调用构造方法,创建实例。
③init()初始化,创建Sevrlet实例后立即被调用,且只执行一次。
④service()处理用户请求,可以被多次调用,每次请求都会调用service方法,实际用于响应请求的。
⑤destory()销毁,只被调用一次,在当前Servlet所在的WEB应用被卸载前调用,用于释放当前Servlet所占用的资源

  

  

  

  

03Java面试题-------------中科软的更多相关文章

  1. Jmeter接口测试流程详解(中科软测认证中心)

    1.jmeter简介 Jmeter是由Apache公司开发的java开源项目,所以想要使用它必须基于java环境才可以: Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同 ...

  2. sql语句的面试题

    中科软的面试题:http://www.mayiwenku.com/p-5888480.html 中科软的面试题:https://blog.csdn.net/woolceo/article/detail ...

  3. 震撼,java面试题整合(良心制作)11万多字拿去。持续更新【可以收藏】

    一.javaSE面试题整合 Java部分 JDK中哪些类是不能继承的?[信雅达面试题] [参考答案] 不能继承的是类是那些用final关键字修饰的类.一般比较基本的类型或防止扩展类无意间破坏原来方法的 ...

  4. 心路历程(五)-find work and find house

    今天,对我半年的java自学经历做一个总结吧,因为今天刚找到了房子,而工作在前两天已经找到.面试了两家,第一家是海淀去知春路的中科软,去之前就百度了这家公司,各种黑,然后自己去了之后,说说自己真实的感 ...

  5. (转载)所有分类 > 开发语言与工具 > 移动开发 > Android开发 Android中的Service:默默的奉献者 (1)

    前言 这段时间在看一些IPC相关的东西,这里面就不可避免的要涉及到service,进程线程这些知识点,而且在研究的过程中我惊觉自己对这些东西的记忆已经开始有些模糊了——这可要不得.于是我就干脆花了点心 ...

  6. .NET开发的大型网站列表、各大公司.NET职位精选,C#王者归来

    简洁.优雅.高效的C#语言,神一样的C#创始人Anders Hejlsberg,async/await编译器级异步语法,N年前就有的lambda表达式,.NET Native媲美C++的原生编译性能, ...

  7. 中国排名前100的IT公司 (转)

    排序 单位名称 软件收入 1 华为技术有限公司 622360  2 中兴通讯股份有限公司 601331  3 海信集团有限公司 448641  4 UT斯达康通讯有限公司 386763  5 海尔集团 ...

  8. 使用Freemarker 实现JSP页面的静态化

    使用Freemarker 静态化网页 一.原理 Freemarker 生成静态页面,首先需要使用自己定义的模板页面,这个模板页面可以是最最普通的html,也可以是嵌套freemarker中的 取值表达 ...

  9. 初学pyhon的几个练习小程序

    一.概述 此程序示例为博主根据路飞学城的python的作业而写的(博主也是python初学者,仅花了99元报了路飞学城的python入门14天集中营3期网络课堂班),此程序非常适合python初学者拿 ...

随机推荐

  1. 如何代替set get方法

    博主刚刚看其他人的博客的时候,发现好多人还在用 生成set get方法  虽然是自动生成的 但是看起来很复杂,影响代码的可读性 那么有什么办法能代替set  get方法吗? 当然有啦!!! 只需要导入 ...

  2. 一个web应用的诞生(7)

    现在所有的Py代码均写在default.py文件中,很明显这种方法下,一旦程序变的负责,那么无论对于开发和维护来说,都会带来很多问题. Flask框架并不强制要求项目使用特定的组织结构,所以这里使用的 ...

  3. xz 解压缩命令,老是忘记

    .tar.xz的解压命令 $ xz -d ***.tar.xz $ tar -xvf ***.tar 或者 $ tar xvJf ***.tar.xz

  4. pyqt5-表格TableWidGet

    from PyQt5.QtWidgets import QApplication,QTableWidget,QWidget,QHeaderView,QPushButton,QTableWidgetIt ...

  5. DB2常用指令

    1. 启动实例(db2inst1): db2start 2. 停止实例(db2inst1): db2stop 3. 列出所有实例(db2inst1) db2ilist 3-1.列出当前实例: db2 ...

  6. [每日一讲] Python系列:列表与元组

    参考文档 https://docs.python.org/zh-cn/3.7/tutorial/introduction.html#lists """ DATA STRU ...

  7. 【NOIP2014模拟11.3】蛋糕

    题目 今天是Bessie的生日,他买了一个蛋糕和朋友们一起分享,蛋糕可以看成是一个R行C列的表格,共有R*C个格子,每个格子都有一个0至9的数字,表示该格子蛋糕拥有的巧克力.现在Bessie要把蛋糕横 ...

  8. VUE实现限制输入框最多输入15个中文,或者30个英文

    vue项目,输入框限制输入15个中文,或者30个英文 <input type="text" v-model="groupName" class=" ...

  9. shell练习--PAT题目1005:继续(3n+1)猜想(全绿失败喜加一)

    卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情况稍微有些复杂. 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数.例如对 n=3 进行验证的时 ...

  10. java.lang.IllegalArgumentException: java.io.IOException: Alias name [tomcat] does not identify a key entry

    java.lang.IllegalArgumentException: java.io.IOException: Alias name [tomcat] does not identify a key ...