JVM机制及后台开发问题解决
来源:互联网 发布:js 字符串分割 编辑:程序博客网 时间:2024/05/30 23:45
JVM机制及后台开发问题解决
目录:
1、下列示例代码用于探讨JVM机制:
2、JSP的form表单中name和id标签的区别:
3、Jdk从1.7更新为1.8后,对于一个项目无法部署进Tomcat中的解决方法:
4、在Tomcat下为图片目录配置虚拟路径:
5、CSS用到的不熟悉的标签:
6、在Tomcat中,WEB-INF目录下的JSP文件浏览器是无法直接访问的,只能通过重定向后才能够访问,因此放在WEB-INF下的jsp页面比较安全。如果需要直接访问,可以放在和WEB-INF同级目录下。
7、ModelMap和ModelAndView的区别:
8、JSTL:JSP标准标签库:
9、Maven的groupId和ArtifactId:
10、数据库中存储图片:
11、form表单中的role属性的作用:
12、c:forEach varStatus属性:
13、jar包和war包的区别:
1、下列示例代码用于探讨JVM机制:
答:(1)源程序:
public class LoopTest {
public static void main(String[] args){
int j = 1;
j += (++j) + (j++);
System.out.println( "In the end j is" + j);
}
}
(2)运行结果:
In the end j is 5
(3)用javap进行反编译查看Java代码的字节码
public static void main(java.lang.String[]);
Code:
0: iconst_1 //int型常量值1进栈(j=1压入操作数栈)
1: istore_1 //将栈顶int型数值存入局部变量表中的第二个局部变量(j=1从操作数栈中弹出存入局部变量表的1号位置,0号位置已被this占据)
2: iload_1 //第二个int型局部变量进栈(从局部变量表中获得1号位置变量的值,将其压入操作数栈,此时局部变量表1号位置的值依旧存在)
3: iinc 1, 1 //给局部变量表的1号位置的int值增加1(++j的j加上1变为2)
6: iload_1 //++j的运行结果的变量的值2压入操作数栈
7: iload_1 //开始执行j++,先将j的值2压入操作数栈(此时操作数栈有三个值,栈顶到栈底分别为2,2,1)
8: iinc 1, 1 //局部变量表中j++,给j加上1变成2
11: iadd //操作数栈顶两个int型数值相加,并且结果入栈(2 + 2 =4)
12: iadd //操作数栈顶两个int型数值相加,并且结果入栈(4 + 1 =5,操作数栈就剩个5)
13: istore_1 //将栈顶int型数值存入局部变量表中的第二个位置(也就是j += (++j) + (j++)的运行结果的值覆盖掉原来的j值存入局部变量表)
14: getstatic #2 // Field java/lang/System.out:Ljava/io/PrintStream;//获取指定类的静态域,并将其值压入栈顶
17: new #3 // class java/lang/StringBuilder//创建一个对象,并且其引用进栈
20: dup //复制栈顶数值,并且复制值进栈
21: invokespecial #4 // Method java/lang/StringBuilder."<init>":()V//调用超类构造方法、实例初始化方法、私有方法
24: ldc #5 // String In the end j is//将int、float或String型常量值从常量池中推送至栈顶
26:invokevirtual #6 //Method java/lang/StringBuilder.append:(Ljava/lang/String;) Ljava/lang/StringBuilder; //调用实例方法append
29: iload_1 //此时执行的是打印语句的j,将栈顶的j的值调入局部变量表
30: invokevirtual #7 // Method java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;//调用实例方法append
33: invokevirtual #8 // Method java/lang/StringBuilder.toString:()Ljava/lang/String;//调用实例方法toString
36: invokevirtual #9 // Method java/io/PrintStream.println:(Ljava/lang/String;)V//调用实例方法println
39: return
}
2、JSP的form表单中name和id标签的区别:
答:浏览器会根据name来设定发送到服务器的request。因此如果用id,服务器是无法得到数据的。id用于唯一性元素样式定义。
3、Jdk从1.7更新为1.8后,对于一个项目无法部署进Tomcat中的解决方法:
答:①右键点击项目,选择properties;
②点击Project Facts;
③勾选Dynamic Web Module以及将java按钮那里将jdk版本改为1.8;
图3.1 操作截图
④点击“Apply”及“OK”。
4、在Tomcat下为图片目录配置虚拟路径:
答:①双击Servers下的Tomcat;
②选到Modules,在其中进行配置
图4.1 配置本地目录于Tomcat的虚拟路径
5、CSS用到的不熟悉的标签:
答:(1)box-shadow属性:参数h-shadow,v-shadow,blur,spread,color,inset
h-shadow :必需。水平阴影的位置。允许负值。
v-shadow :必需。垂直阴影的位置。允许负值。
blur:可选。模糊距离。
spread:可选。阴影的尺寸。
color:可选。阴影的颜色。
inset :可选。将外部阴影 (outset) 改为内部阴影。
(2)border-right属性:border-right-width,border-right-style,border-right-color
Eg. border-right:3px solid red
6、在Tomcat中,WEB-INF目录下的JSP文件浏览器是无法直接访问的,只能通过重定向后才能够访问,因此放在WEB-INF下的jsp页面比较安全。如果需要直接访问,可以放在和WEB-INF同级目录下。
7、ModelMap和ModelAndView的区别:
答:ModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可。视图层通过request找到ModelMap中的数据。
ModelAndView:包括了ModelMap和视图对象的容器,包含模型也包括视图,设置跳转地址,也可以用于传递控制方法处理数据到结果页面。
8、JSTL:JSP标准标签库:
答:核心标签:
(1)引用核心标签库的语法:<% @ taglib prefix=”c” url=”http://java.sun.com/jsp/jstl/core” %>
(2)标签:
(a)<c:out>:用于在JSP中显示数据,就像<%= ... >
属性:value:要输出的内容,default:输出的默认值,escapeXml:是否输出XML特殊字符
(b)<c:set>:用于设置变量值和对象属性。
(c)<c:remove>:用于移除一个变量。
(d)<c:catch>:用于处理产生错误的异常情况,并且将错误信息储存起来。
(e)<c:if>:用于判断,表达式内的值为true则执行
(f)<c:choose>:与switch功能相同,本身只当做<c:when>和<c:otherwise>的父标签
(g)<c:when>:判断条件是否成立
属性:test:条件
(h)<c:otherwise>:当<c:when>标签判断为false时候执行
(i)<c:import>:检索一个绝对或相对 URL,然后将其内容暴露给页面
(j)<c:foreach>:基础迭代标签,接受多种集合类型
属性:
items:要被循环的信息,
begin:开始的元素,不填则默认为0(第一个元素)开始,
end:最后一个元素,
step:每一次迭代的步长,不填则默认为1,
var:代表当前条目的变量名称,
varStatus:代表循环状态的变量名称
(k)<c:forTokens>:根据指定的分隔符来分隔内容并迭代输出
(l)<c:param>:用来给包含或重定向的页面传递参数
(m)<c:redirect>:重新定向到一个新的URL
(n)<c:url>:将URL格式化为一个字符串,然后存储在一个变量中。
9、Maven的groupId和ArtifactId:
答:(1)groupId是项目组织的唯一标识符,实际对应Java的包的结构,是main目录里的Java目录结构。
(2)ArtifactId是项目的唯一标识符,实际对应项目的名称,就是项目根目录的名称。
10、数据库中存储图片:
答:用varchar型,用于存储图片路径,一般不直接存储图片
11、form表单中的role属性的作用:
答:给有阅读障碍的人设置的属性,可以用读屏软件来解析。
12、c:forEach varStatus属性:
答:current: 当前这次迭代的(集合中的)项
index : 当前这次迭代从 0 开始的迭代索引
count : 当前这次迭代从 1 开始的迭代计数
first : 用来表明当前这轮迭代是否为第一次迭代的标志
last : 用来表明当前这轮迭代是否为最后一次迭代的标志
begin : 返回begin属性值
end: 返回end属性值
step : 返回step属性值
13、jar包和war包的区别:
答:(1)jar包是开发时要引用通用类,打包便于存放管理。
(2)war包是做好一个web应用后,通常是网站,打成包部署到容器中。对于Tomcat来说,将war文件包放置在它的\webapps\目录下,启动Tomcat,这个包可以自动进行解压,也就是web目录,相当于发布了。
- JVM机制及后台开发问题解决
- iOS 开发 后台机制
- iOS 开发 后台机制
- JVM及垃圾回收机制
- nginx-upstream-jvm-route安装及问题解决
- JVM内存管理及垃圾回收机制
- JVM 垃圾回收机制及性能调优案列
- JVM线程资源同步及交互机制
- JVM内存模型及垃圾回收机制
- JVM内存模型及垃圾回收机制
- JVM内存模型及垃圾回收机制
- JVM垃圾回收机制及内存
- JVM内存模型及垃圾回收机制
- JVM内存模型及垃圾回收机制
- JVM内存管理及GC机制
- JVM内存模型及垃圾回收机制
- JVM调优及内部机制研究
- JVM内存管理及GC机制
- 基于webpack和vue.js搭建开发环境(修改文章列子几个小错误)
- HashMap为什么是线程不安全的?
- Android通用流行框架大全
- 2017 最全的机器学习开源项目列表
- UIPageControl修改圆点图片及间距
- JVM机制及后台开发问题解决
- 用php把数据生成txt文件的使用方法
- [均摊 平衡树 || 线段树] Codeforces 438D #250 (Div. 1) D. The Child and Sequence
- SQL之触发器
- Android程序员学PHP开发(14)-whlie练习-PhpStorm
- textarea最多输入的长度
- HTML5 canvas专栏
- linux 开启mysql远程
- 关于PHP的数据库(Mysql)连接池