又要考试了,临时抱抱脚丫子~
目录
javaweb
第三章Servlet
3.D。通过ServletContext的getInitParameter()获取的是在web.xml中为整个应用定义的
区别于 init-param参数,可以通过ServletConfig对象的getInitParameter()方法获取到,对应于web.xml中的定义是
4.A。不清楚原因。通过地址栏貌似只能访问doGet
D实现了一种自动提交表单,让servlet执行dopost函数的方法
5.request.getParameterValues(String name)获取的是一个数组,通常是因为这个name有多个对应值,所以通过length可以得到数组的长度;而request.getParameter(String name)返回的是相应名的数据(value),如果有重复的名,则返回第一个的值(value).
6.一般在写servlet的时候,都会在前面加上 response.setContentType(“text/html;charset=utf-8”);
request.setCharacterEncoding(“UTF-8”);
request设置编码只是单方面的解码,因为你从request只能设置数据源的解码方式,而不能指定数据源的编码方式,所以有可能解出来是乱码
response设置的是双方面的,可以保证jsp得到response之后按照你指定的方式去解码
7.A。B这两个方法压根就不存在好吧
另外,sendRedirect中使用相对路径的时候,’/'表示到当前主机地址而已,不表示到具体项目。c应该是/project/success.jsp
第五章JSP
1.A。。。page指令是作用于整个界面的。因为别忘了他的import属性是可以导包的。如果有多个包需要导入,当然可以分多次导包
2.只有page的import是可以导包的吧,好像。
<jsp:include page="WTF.jsp>用来在当前jsp导入另外一个
对应的另外一个是
<%@ include file=“WTF.jsp”%>
当然,也可以是html
区别在于<% include 这个东西只是将两个jsp糅合在一起,如果有同名变量那就GG了
而< jsp:include >会将两个jsp分别生成一个servlet,使用的时候动态调用
而且他有一个flush属性默认是fause
也就是不使用缓冲区,就是服务器端动态解释出来一点东西,就往客户端送过去。。。一般小页面无所谓了不用管
6.有意思啊。null直接可以转换成字符串输出了。一般还是用< c:out >输出吧,又安全又可以设置默认值。
第六章JSP内置对象
3.某个jsp需要跳转到一个错误界面的话,需要加上<%@ page errorPage=“error.jsp” >,你设定的错误界面也需要加上<%@ pageisErrorPage=“true” > 这样,错误界面的jsp才可以使用一个叫做exception的对象,用来捕获从初始界面得到的一个异常
4.jsp有两个关于page的对象,一个是page,另外一个是pageContext;需要知道的是,page是该jsp的实例化对象,而pageContext才是你想要的page作用域,例如:pageContext.setAttribute(“wanker”,“wanker”);而El表达式中的pageContext是储存该页的一些对象引用,比如可以得到${pageContext.request}
第七章JavaBean
1.A。格式:scope中的格式为page.session .request. application而不是pageContext.
3.属性不存在不相当于你没给属性初始化。因为属性即使没初始化,它也有默认值,因为javaBean是个java的实例化对象啊。不存在的话,直接报500了
4.想要引用一个javabean,也就是在一个jsp中可以访问到这个bean的属性。通过getProperty或者set等等其他方法也可以。useBean一般用来新建某一个bean。
第八章EL表达式
答案在上面。以下内容分析选项。
1.A。EL的内置对象和JSP的有挺大的区别的。对于JSP来说,一共有9个内置对象:request、response、session、application、out、pagecontext、config、page、exception;但是如果使用EL表达式的话,就没有request,response这些对象,想要获得request都需要写${pageContext.request}
D。javabean就是一个类的对象。他的私有方法当然不能访问。
2.在EL表达式中的‘+’只有数学运算的功能,没有连接符的功能,它会试着把运算符两边的操作数转换为数值类型,进而进行数学加法运算,最后把结果输出。若出现 $ {‘a’+‘b’ } 则会出现异常。当然,如果有${1+null}中的null是被当成0处理。而在逻辑表达式中,比如 null被当作false处理
4.javaBean的变量都是私有变量,如果通过java语句访问javaBean的变量,只能通过他的get/set函数访问了
5.D.EL表达式里的第一个东西要么是EL的对象,要么是JavaBean,要么是所有省略了域的一个attribute。这个选项,如果是第三种情况,是没问题的。不知道答案有没有问题。。。
7.
其中,eq(equal),ne(not equal),lt(less than);gt(greater than);le(less or equal);ge(greater or equal)
java
第一章java概述
参考答案:b.d.b.c.d
5.多行注释和文档注释的区别在于一个是 / * 另一个 / * *
6 . 程序的入口
7.首先,java编译器将java源程序编译成java字节码(对应的是javac命令)
其次,字节码在本地或通过网络传送给JVM
再次,JVM对字节码进行即时编译或解释执行后形成二进制的机器码(java命令)
最后,生成的机器码可以在硬件上直接运行
第二章java语言基础
题外话:对于强制类型转换来说,也就是(int)99.36;之类的;在基本类型变量之间的强制转换很容易理解;但对于某个类来说,强制类型的转换需要你保证它们之间有继承关系。例如:a是b的父类,则可以(a)b;
1.java中一个带小数点的数默认是double类型。
3.switch与if_else if的很大区别就是switch有一个击穿。你如果没有及时在一个分支break的话;他会进行下一个语句的判断。
7.
java多维数组的定义规范就是,如果某一维度你给他定义了大小,那么它的前几维就必须要定义。
第三章面向对象基础
2.在访问权限为缺省的情况下,这个变量或函数只可以在同一个包中被访问。而且,如果一个类为缺省状态的话,其他包是无法导入的。举两个例子:
第一个例子:
这是与MyClass1不在同一个包下的类中的一个方法:红色为报错
另一个例子
如果在某一个包中有
那么在另外一个包中,不可以protected的限制相对松了一点。
如果在一个类中定义了一个protected函数或变量
只要某个类继承了这个类
不管这个类是不是在同一个包中
所有protected的东西是可以使用的
但是,
如果没有继承关系
那么只可以在同一个包中使用
5.重载和覆盖区分:从英语的角度来说,重载是overload,load理解为再装入一些东西,也就是与现有的东西是平行关系。覆盖是override,ride都骑上去了,可不是覆盖了。
A。可以在子类中重载。也可以在子类中覆盖。重载要求函数签名不一样,覆盖要求除了函数体,其他都一致。
C:重载与返回值没有必然联系。只要改了函数签名,那么返回值怎么着都没问题。
8.可变参数接受的是一个数组,但比正常数组形参多了一点方便之处:
如果sum2使用了可变参数
其函数为:
那么在调用的时候可以:
1,2,3会自动转换为一个数组
但可变参数有要求:可以同时有其他参数,但必须放在参数列表的最后面
第五章类之间的关系
5.子类中的构造函数要么在第一行包括this()要么是super();要么不加;this和super不可 同时存在,这保证了调用子类的构造函数的时候总会先调用父类的构造函数。
6.D.局部内部类是在函数中定义的类。既然是在函数中定义,本身已经限制了作用域,也就是说,局部内部类只能在函数中实例化,所以根本不需要private和public
C.内部类的逻辑就是只有在外部类存在的情况下,才有内部类存在的可能。比如:发动机是可以独立存在的一个东西。
而对于内部类
成员内部类的地位和类中的其他变量和函数的地位是一样的。所以有各种访问权限修饰符给它们使用public protected 缺省 private。成员内部类不是静态的,那么就需要外部类实例化之后,再专门为它们实例化,否则没法使用。静态内部类是依赖于类的。举一个例子:
观察main中的牛腿的构造方法:全部依赖于cow对象
总之,内部类比组合类的依赖关系更强。
第六章抽象类和接口
题外话:书中介绍了instanceof
instanceof首先会判断前后两者的编译类型是否存在继承关系,不存在则报错;如果存在的话,如果前者可以强制转换为后者的类型,那么返回true.
5.举个例子
接口中的变量默认会加上public static final
接口中的方法默认会加上public abstract
所以在接口中写方法,直接返回值函数名括号就完事了
如果你闲得慌加上个public 他会提示你多余了
如果想要在接口中实现具体方法,需要加上default
当然,也可以有实现了的静态方法
7.一个类实现一个接口的话(implements),就必须把接口中的所有抽象函数都写出来好吧。当然,如果接口继承一个接口(extends),可以对其进行扩充。如果一个类继承自一个抽象类而未全部实现其抽象函数,这个类还是一个抽象类。
第七章异常
3.举个例子
①上面这个东西,如果throws后面单纯只有非检测型异常的话,这个函数在别的地方调用的时候是不需要try_catch语句的。
②如果自定义了一个异常,并且在这个函数后面加上throws AgeException后。在方法体中是可以选择不抛出这种异常。
③如果抛出异常但是又有一些后续的工作必须实现的话,需要加上try,finally语句。条件就是try_finally语句所在的方法需要定义抛出这个异常
④try_finally的另一种使用方法就是中间放着非检测型异常。
6.A。继承于exception需要try_Catch而继承于runtime不需要。这两个都是实现自定义异常的方法
前端
第四章CSS
2.注意外部样式有两种使用方法:
①链接
②导入
推荐使用第一种方法,因为在使用Document对象的时候,@import中引入的东西不受控制。
题外话
css的语法规则
第六章javascript
5.命名规则
题外话:javascript自定义函数
①自动执行的函数
var kiss="bust my ass"; (function(ass){ alert(ass) })(kiss);
(function(ass){ alert(ass) })(kiss)这个函数会自动执行
其中kiss为从外面传入的参数,即实参
function后面的参数为形参
②匿名函数
var fun=function(){
console.log('做包子的机器');
};
fun();
这种方式比较常用
第七章Javascript对象
Array对象:
注意,传入一个数字的情况下使用的是第二种。
创建数组:
var temp=[1,2,3];
也可以var temp=[];直接返回一个空数组
创建自定义对象
①原始法:
②构造函数法:
③一和二的混合法
④JSON:一种比较轻量的方法。JSON的格式就是一对花括号。
json的牛逼之处在于其本质是一堆字符串:
通过eval函数也就是(evaluate)将其中的字符串转换为一个对象赋给movie
注意:json是包含花括号的部分。再套上一个()表示这里的花括号不是普通的花括号,是可以转换成为json对象的。