每日一练

来源:互联网 发布:小米主题 windows xp 编辑:程序博客网 时间:2024/06/16 03:13

JSP 简答题

JSP 中动态 include 与静态 include 的区别?

动态INCLUDE在使用的时候,会先解析所要包含的页面(你例子中的included.jsp),解析后在和主页面放到一起显示;

静态INCLUDE在使用的时候,不会解析所要包含的页面(你例子中的included.htm),也就是说,不管你的included.htm中有什么,我的任务就是把你包含并显示,其他的一概不管

jsp:include是先编译一下included.jsp文件,然后再包含 先编译,后包含
@include是先把文件包含就来,然后统一编译 先包含,后编译

描述 forward 和 redirect 的区别?

转发是服务器行为,重定向是客户端行为。
区别:
1、从地址栏显示来说
forward 是服务器请求资源,服务器直接访问目标地址的 URL,把 URL 的响应内容读取过来,然后把这些内容再发给浏览器,它的地址栏还是原来的地址。
redirect 是服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址。所以地址栏显示的是新的 URL。
2、从数据共享来说
forward:转发页面和转发到的页面可以共享request里面的数据。
redirect:不能共享数据。
3、从运用地方来说
forward:一般用于用户登陆的时候,根据角色转发到相应的模块。
redirect:一般用于用户注销登陆时返回主页面和跳转到其它的网站等。

B/S 与 C/S 的联系与区别。

C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统的通讯开销。

B/S(Browser/Server)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对 C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

Java 简答题

什么是数据库连接池?

像打开关闭数据库连接这种和数据库的交互可能是很费时的,尤其是当客户端数量增加的时候,会消耗大量的资源,成本是非常高的。可以在应用服务器启动的时候建立很多个数据库连接并维护在一个池中。连接请求由池中的连接提供。在连接使用完毕以后,把连接归还到池中,以用于满足将来更多的请求。

HashMap 和 Hashtable 的区别?

HashMap和Hashtable都实现了Map接口,主要的区别有:线程安全性,同步(synchronization),以及速度。
1、HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行)。
2、HashMap是非synchronized,而Hashtable是synchronized,这意味着Hashtable是线程安全的,多个线程可以共享一个Hashtable;而如果没有正确的同步的话,多个线程是不能共享HashMap的。Java 5提供了ConcurrentHashMap,它是HashTable的替代,比HashTable的扩展性更好。
3、另一个区别是HashMap的迭代器(Iterator)是fail-fast迭代器,而Hashtable的enumerator迭代器不是fail-fast的。所以当有其它线程改变了HashMap的结构(增加或者移除元素),将会抛出ConcurrentModificationException,但迭代器本身的remove()方法移除元素则不会抛出ConcurrentModificationException异常。但这并不是一个一定发生的行为,要看JVM。这条同样也是Enumeration和Iterator的区别。
4、由于Hashtable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢。如果你不需要同步,只需要单一线程,那么使用HashMap性能要好过Hashtable。
5、HashMap不能保证随着时间的推移Map中的元素次序是不变的。

Java 中实现多态的机制是什么?

父类或接口定义的引用变量可以指向子类或具体实现类的实例对象,而程序调用的方法在运行期才动态绑定,这里的方法是指引用变量所指向的具体实例对象的方法,也就是内存里正在运行的那个对象的方法,而不是引用变量的类型中定义的方法。

Java 有那些基本数据类型,String 是不是基本数据类型,他们有何区别?

基本类型共有八种,它们分别都有相对应的包装类。
基本类型可以分为三类:
字符类型 char;
布尔类型 boolean;
数值类型 byte、short、int、long、float、double。
String 是引用类型(类类型)。

数组(Array)和列表(ArrayList)有什么区别?什么时候应该使用 Array 而不是 ArrayList?

1、存储内容比较:
Array 数组可以包含基本类型和对象类型,
ArrayList 却只能包含对象类型。
Array 数组在存放的时候一定是同种类型的元素。ArrayList 就不一定了 。
2、空间大小比较:
Array 数组的空间大小是固定的,所以需要事前确定合适的空间大小。
ArrayList 的空间是动态增长的,而且,每次添加新的元素的时候都会检查内部数组的空间是否足够。
3.方法上的比较:
ArrayList 方法上比 Array 更多样化,比如添加全部 addAll()、删除全部 removeAll()、返回迭代器 iterator() 等。
适用场景:
如果想要保存一些在整个程序运行期间都会存在而且不变的数据,我们可以将它们放进一个全局数组里, 但是如果我们单纯只是想要以数组的形式保存数据,而不对数据进行增加等操作,只是方便我们进行查找的话,那么,我们就选择 ArrayList。
如果我们需要对元素进行频繁的移动或删除,或者是处理的是超大量的数据,那么,使用 ArrayList 就真的不是一个好的选择,因为它的效率很低,使用数组进行这样的动作就很麻烦,那么,我们可以考虑选择 LinkedList。

MySQL 简答题

数据库事务的四个特性及含义?

原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。

一致性:在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

隔离性:隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请求,使得在同一时间仅有一个请求用于同一数据。

持久性:在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

数据库里面的索引和约束是什么?

索引是为了提高数据的检索速度,索引是建立在数据表上,根据一个或多个字段建立的约束是为了保持数据的完整性,约束有非空约束,主键约束,外键约束等等。

请描述 MySQL 从安装到配置的全部详细过程(确保一台新电脑可以顺利使用 MySQL)。

1、去官网下载 MySQL 配置版;
2、将 MySQL 注册到系统服务中;
3、将 MySQL 的 bin 目录配置到系统环境变量 path 中;
4、通过命令 mysql -uroot -p进入数据库;

常见的几种约束有哪些?分别代表什么意思?如何使用?

常用的约束有主键约束,外键约束,唯一约束,默认约束 。
1、主键:PRIMARY KEY(主键字段)保证了实体完整性,一个表只有一个主键,但一个主键可以包含多个字段,主键字段不能为空;
2、唯一:UNIQUE(约束字段)保证了实体完整性,一个表有多个唯一约束,一个唯一约束可有包含多个字段;
3、外键:FOREIGN KEY(外键字段),保证了引用完整性,一个表可以有多个外键;
4、默认值:DEFAULT(默认值的表达式或NULL),保证了域完整性,一个表可以有多个默认值约束,但是一个字段只有一个默认值。

JavaScript 简答题

列举 Java 和 JavaScript 之间的区别?

Java是一门十分完整、成熟的编程语言。相比之下,JavaScript 是一个可以被引入 HTML 页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。 Java 是一种面向对象编程或结构化编程语言,类似的如 C ++ 或 C,而 JavaScript 是客户端脚本语言,它被称为非结构化编程。

请你说说 split() 与 join() 函数的区别?

前者是切割成数组的形式,后者是将数组转换成字符串。join 函数获取一批字符串,然后用分隔符字符串将它们连接起来,从而返回一个字符串。split 函数获取一个字符串,然后在分隔符处将其断开,从而返回一批字符串。但是,这两个函数之间的主要区别在于 Join 可以使用任何分隔符字符串将多个字符串连接起来,而 split 只能使用一个字符分隔符将字符串断开。
简单地说,如果你用 split,是把一串字符(根据某个分隔符)分成若干个元素存放在一个数组里。而 join 是把数组中的字符串连成一个长串,可以大体上认为是 split 的逆操作。

说说你对 json 的理解?

a、JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation);
b、JSON 是轻量级的文本数据交换格式,并不是编程语言;
c、JSON 独立于语言存在;
d、JSON 具有自我描述性,更易理解;
e、JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中传递数据。

DOM 操作怎样添加、移除、移动、复制、创建和查找节点?

1、创建新节点
创建一个具体的元素: createElement()
创建一个文本节点:createTextNode()
2、添加、移除、替换、插入
添加:appendChild()
移除:removeChild()
替换:replaceChild()
插入:insertBefore() 在已有的子节点前插入一个新的子节点
3、查找
通过标签名称:getElementsByTagName()
通过元素的Name属性的值:getElementsByName()
通过元素Id:getElementById()

谈谈你对Ajax 的理解?(概念、特点、作用)

AJAX 全称为「Asynchronous JavaScript And XML」(异步 JavaScript 和 XML) 是指一种创建交互式网页应用的开发技术、改善用户体验,实现无刷新效果。
优点
a、无刷新更新数据,能在不刷新整个页面的前提下与服务器通信维护数据;
b、异步与服务器通信,不需要打断用户的操作,具有更加迅速的响应能力;
c、提高 Web 程序的性能;
d、基于标准被广泛支持,不需要下载插件;
缺点
a、破坏浏览器「前进」、「后退」按钮的正常功能,可以通过简单的插件弥补;
b、对搜索引擎的支持不足;

原创粉丝点击