java小记

在这里插入图片描述
A
同一个对象,分别调用方法a和b,锁住的是同一个对象
B

同一个对象,分别调用方法a和c,锁住的是同一个对象
C
同一个对象,分别调用方法b和c,锁住的不是同一个对象
D
同一个对象,分别调用方法a、b、c,锁住的不是同一个对象
修饰非静态方法 锁的是this 对象
修饰静态方法 锁的是class对象

public class NameList
{
    private List names = new ArrayList();
    public synchronized void add(String name)
    {
        names.add(name);
    }
    public synchronized void printAll() {
        for (int i = 0; i < names.size(); i++)
        {
            System.out.print(names.get(i) + "");
        }
    }
 
    public static void main(String[]args)
    {
        final NameList sl = new NameList();
        for (int i = 0; i < 2; i++)
        {
            new Thread()
            {
                public void run()
                {
                    sl.add("A");
                    sl.add("B");
                    sl.add("C");
                    sl.printAll();
                }
            } .start();
        }
    }
}

代码输出"A B C A B C A B C " ||
代码输出"A B C A A B C A B C "

接口是一种引用类型,在接口中可以声明以下哪三个
抽象方法 类变量 抽象内部类

接口是一种引用类型,在接口中可以声明(),但不可以声明公有的域或私有的成员变量。

方法、属性、索引器和事件
方法、属性信息、属性
索引器和字段
事件和字段

抽象类是___不能实例化的类___。

异常的含义程序编译或运行中所发生的异常事件
在这里插入图片描述
Throwable 类是所有异常和错误的超类,下面有 Error 和 Exception 两个子类分别表示错误和异常

异常类型 说明
Exception 异常层次结构的根类
RuntimeException 运行时异常,多数 java.lang 异常的根类
ArithmeticException 算术谱误异常,如以零做除数
ArraylndexOutOfBoundException 数组大小小于或大于实际的数组大小
NullPointerException 尝试访问 null 对象成员,空指针异常
ClassNotFoundException 不能加载所需的类
NumberF ormatException 数字转化格式异常,比如字符串到 float 型数字的转换无效
IOException I/O 异常的根类
F ileN otF oundException 找不到文件
EOFException 文件结束
InterruptedException 线程中断
IllegalArgumentException 方法接收到非法参数
ClassCastException 类型转换异常
SQLException 操作数据库异常

自定义异常
如果 Java 提供的内置异常类型不能满足程序设计的需求,这时我们可以自己设计 Java 类库或框架,其中包括异常类型。实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。

class IntegerRangeException extends Exception {
    public IntegerRangeException() {
        super();
    }
    public IntegerRangeException(String s) {
        super(s);
    }
}

不是数据库连接池好处的是 :可以同时连接多个数据库

连接池的功能

1.可以缓解连接池频繁的关闭和创建会造成系统性能的下降
2.可以提高客户端的连接数量
3.可以提系统的伸缩性

JDBC中,用于表示数据库连接的对象是?( )
• A. Statement
• B. Connection
• C. DriverManager
• D. PreparedStatement

JDBC事务默认为自动提交,每执行一条SQL语句就会开启一个事务,执行完毕之后自动提交事务,如果出现异常自动回滚事务

JDBC事务的步骤 获取Connection对象 取消Connection的事务自动提交方式 发生异常回滚事务 操作完毕提交事务

JDBC编程中编码顺序
1.注册JDBC Driver
2.获得与数据库的物理连接
3.创建不同类型的Statement
4.执行SQL 命令
5.如果有结果集, 处理结果集
6.释放资源

下面是JDBC常用接口的是()
• A. Driver
• B. DriverManager
• C. Connection
• D. Statement

使用Connection的哪个方法可以创建一个PreparedStatment()
• A. prepareStatement()
• B. createStatement()
• C. prepared()

javaWeb

JDBC中执行一条SELECT语句应调用方法 executeQuery()
下面哪个注解用来配置Servlet • @WebServlet
@WebServlet(“/login.do”)

假设在 myweb应用中有一个 MyServlet 类,在 web.xml 文件中对其进行如下配置:

<servlet>
    <servlet-name>myservlet</servlet-name>
    <servlet-class>com.iflytek.MyServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>myservlet</servlet-name>
    <servlet-pattern>/welcome</url-pattern>
</servlet-mapping>

http://localhost:8080/myweb/welcome

给定某Servlet的代码如下,编译运行该文件,以下陈述正确的是( )

public class Servlet1 extends HttpServlet{
    public void init() throws ServletException{}
    public void service(HttpServletRequest request,HttpServletResponse response) throws  ServletException,IOException{
        printWriter out = response.getWriter();
        out.println(“hello!”);
    }
}

• 编译后,把Servlet1.class放在正确位置,运行该Servlet,在浏览器中会看到输出文字:hello!

给定一个 Servlet 的doGet方法中的代码片段,如下:

request.setAttribute(“name”,”zhang”);
response.sendRedirect(“http://localhost:8080/servlet/MyServlt”);//重定向

那么在 MyServlet中可以使用( 无法取出来)方法把属性 name的值取出来

request.setAttribute(“name”,”zhang”);
request.getRequestDispatcher("xxx").forward(request,response);//转发
 String str=request.getAttribute(“name”); 

可以获得Servlet的初始化参数 ServletConfig

下面JSP语法错误的是()

• A. <%! int number; %>
• B. <%-- int a = 1; --%>
• C. <%= 5 + 3; %>
• D. <%@ page import=“java.io., java.util.” %>

jsp在执行过程中经过什么阶段,会将java源码转换成class文件 编译

在JSP中,test.jsp文件有如下内容:

<html>
. . .
<body>
<% String str = null; %> str is <%= str%>
</body>
</html>

访问该JSP时将发生()

• A. 翻译出错
• B. 编译翻译的Servlet源码时出错
• C. 执行编译后的Servlet时发生错误
• D. 运行后浏览器上将显示str is null

在JSP中,以下哪个方法可以正确获取复选框的值 request.getParameterValues()
给定以下 JSP 代码片段:

<% int x = 1; %>
<%! int x = 10; %>
x = <%=x++%>

有 2 个客户依次浏览该 JSP,且每个客户只浏览一次,则第2 个客户会看到浏览器显示()

• A. x = 1
• B. x = 2
• C. x = 10
• D. x = 11

标签 作用
<% %> 可定义局部变量,编写语句,不能进行方法定义 ,也可输出内容
<%! %> 可定义全局变量,方法,类
<%= %> 之间插入表达式,不能是语句,主要用来输出内容

给定一个自定义标签程序的代码片断如下:

public int doStartTage() throws JspTagException{ 
    pageContext.getAttribute(A); //第二行 
    return EVAL_BODY_INCLUDE; 
}

假定第二行返回的对象引用不是null,那么这个对象存储在( )范围中

• A. page
• B. session
• C. request
• D. application

page属性的保存范围仅在一个页面中,即当页面发生跳转后就无效了
<%
   pageContext.setAttribute("name", "奋斗中的编程菜鸟");
   pageContext.setAttribute("birthday", new Date());
%>
<%
   String username = (String)pageContext.getAttribute("name");
   Date userbirthday = (Date)pageContext.getAttribute("birthday");
%>
request属性范围是在服务器发生跳转时,之前的页面设置的属性仍然可以取得
<%
	String username = (String)request.getAttribute("name");
	Date userbirthday = (Date)request.getAttribute("birthday");
%>
String username = (String)session.getAttribute("name");
	Date userbirthday = (Date)session.getAttribute("birthday");
	
<%
	String username = (String)application.getAttribute("name");
	Date userbirthday = (Date)application.getAttribute("birthday");
%>

以下哪个对象提供了访问和放置页面中共享数据的方式 pageContext

jsp最终被加载运行的是一个class文件

SP的生命周期可以粗略地分为以下几个阶段:

初始化阶段:在该阶段中,JSP页面被加载并解析,servlet被初始化,jspContext被设置为null。
准备阶段:在该阶段中,所有用于页面生成的Java代码都被执行,并且所有的Java变量都被声明为可见。此外,响应资源(如脚本文件、头部文件、JS文件等)也被准备好。
编译阶段:在该阶段中,Java源代码被编译成字节码,并且所有的字节码都被存储在class文件中。
解析阶段:在该阶段中,class文件被加载到JVM中,并且字节码被解析成Java虚拟机可以理解的格式。
执行阶段:在该阶段中,JVM从class文件中加载并执行字节码,同时jspContext被用于创建JSP页面的实例。
销毁阶段:在该阶段中,如果JSP页面不再需要,可以调用jspDestroy()方法从容器中删除JSP实例和其相关的资源。
废弃阶段:在该阶段中,JSP页面不再需要并被删除后,其所有资源都被释放,如class文件、JS文件、脚本文件等。
EL表达式是一种简单的脚本语言,用于在JSP页面中输出数据。EL表达式的格式是 ,其中 {},其中 ,其中{}中的内容会被解析为Java代码并执行。


```java
EL表达式可以用于访问和操作数据库、从数据库中获取数据、向数据库中插入数据等操作。以下是一些常见的EL表达式:

${name}:输出变量name的值。
${name=value}:设置变量name的值为value。
${booleanValue}:输出布尔值booleanValue的值。
${numberValue}:输出数字值numberValue的值。
${stringValue}:输出字符串值stringValue的值。
${collection}:输出数组、集合、列表等数据源的值。
${map}:输出映射表的值。
${requestScope.property}:输出requestScope对象中的属性值。
${requestScope.property=value}:设置requestScope对象中的属性值为value。
${cookieName}:输出cookieName变量的值。
${selectedElement.property}:输出selectedElement对象中的属性值。
${selectedElement.property=value}:设置selectedElement对象中的属性值为value。
${isArray}:判断一个变量是否为数组。
${stringRepeat(n)}:重复字符串n次。
${numberRepeat(n)}:重复数字n次。
${elementList.length}:输出数组elementList的长度。
${selectedList.length}:输出选择器selectedList的长度。
${anyAttribute()}:输出任意属性。
${allAttribute()}:输出所有属性。
${message}:输出错误信息。
${request.property}:输出request对象中的属性值。
${request.property=value}:设置request对象中的属性值为value。
${pageContext.attributeMap}:输出pageContext对象中的属性映射表。
${message(args)}:输出自定义错误信息,包括错误消息和参数。
${extension>value}:根据扩展名extension获取值value,如果不存在则返回默认值。
${formParamName.parameterName}:根据参数名parameterName获取表单变量名formParamName的值。
${formParamName.attributeName}:根据参数名parameterName获取表单属性名formParamName的值。
${formParamName.propertyName}:根据参数名parameterName获取表单属性名formParamName的值,并设置参数值。
${paramName.parameterName}:根据参数名parameterName获取URL参数名paramName的值。
${paramName.propertyName}:根据参数名parameterName获取URL参数名paramName的值,并设置参数值。


不登高山,不知天之大;不临深谷,不知地之厚也。-------------- 荀况
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值