Java零散知识2
Posted xiaoshuangaaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java零散知识2相关的知识,希望对你有一定的参考价值。
1、类信息、常量、静态变量等数据储存在方法区,只会在类加载的时候储存一次,地址一样。
2、鲁棒性(Robust,即健壮性) Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生 的错误。通过集成的面向对象的例外处理机制,在编译时,Java揭示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外, Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。 (1)java能检查程序在编译和运行时的错误 (2)java自己操纵内存减少了内存出错的可能性 (3)java还实现了真数组,避免了覆盖数据的可能
3、数组有length属性,字符串只有length()方法
4、Servlet的生命周期一般可以用三个方法来表示: (1). init():仅执行一次,负责在装载Servlet时初始化Servlet对象 初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法 (2). service() :核心方法,一般HttpServlet中会有get,post两种处理方式。在调用doGet和doPost方法时会构造servletRequest和servletResponse请求和响应对象作为参数。
(3). destory():在停止并且卸载Servlet时执行,负责释放资源 初始化阶段:Servlet启动,会读取配置文件中的信息,构造指定的Servlet对象,创建ServletConfig对象,将ServletConfig作为参数来调用init()方法。所以选ACD。B是在调用service方法时才构造的 (4) 属于初始化阶段是
1. 加载Servlet类及.class对应的数据
2. 创建ServletConfig对象
3. 创建Servlet对象
GenericServlet类:抽象类,定义一个通用的、独立于底层协议的Servlet。 大多数Servlet通过从GenericServlet或HttpServlet类进行扩展来实现 ServletConfig接口定义了在Servlet初始化的过程中由Servlet容器传递给Servlet得配置信息对象 HttpServletRequest接口扩展ServletRequest接口,为HTTP Servlet提供HTTP请求信息
5、Struts工作原理 MVC 即Model-View-Controller的缩写,是一种常用的设计模式。MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。 Struts 是MVC的一种实现,它将 Servlet和 JSP 标记(属于 J2EE 规范)用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展。
6、Java连接数据库 Class.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动依赖类 Connection conn = DriverManager.getConnection ("jdbc:oracle:thin:@" + "localhost:1521:orcl","usermanager","abc123"); //利用驱动获取数据库的连接管道 conn Statement stat = conn.createStatement(); //给管道安排一个sql语句的封装对象 ResultSet rs = stat.executeQuery("select * from userinfo where username=‘"+name+"‘"); //执行语句并返回结果集合 resultSet while(rs.next()) //迭代一行数据 rs.next() System.out.println(rs.getString(1)); //取出这一行数据
7、USES-A:依赖关系,A类会用到B类,这种关系具有偶然性,临时性。但B类的变化会影响A类。这种在代码中的体现为:A类方法中的参数包含了B类。
关联关系:A类会用到B类,这是一种强依赖关系,是长期的并非偶然。在代码中的表现为:A类的成员变量中含有B类。
HAS-A:聚合关系,拥有关系,是关联关系的一种特例,是整体和部分的关系。比如鸟群和鸟的关系是聚合关系,鸟群中每个部分都是鸟。
IS-A:表示继承。父类与子类
组合关系:也是关联关系的一种特例,它体现一种contains-a的关系,这种关系比聚合更强,也称为强聚合。它同样体现整体与部分的关系,但这种整体和部分是不可分割的。
8、JAVA的垃圾回收机制 java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。当对象的引用变量被赋值为null,可能被当成垃圾。 9、在子类构造方法中使用super()显示调用父类的构造方法,super()必须写在子类构造方法的第一行,否则编译不通过
10、构造函数不能被继承,只能被调用,构造方法只能被显式或隐式的调用。
11、浏览器的内置对象管理模型,简称BOM(Browser Object Model)中的Histroy属性和方法。 (1)length 返回浏览器历史列表中的URL数量。 (2) back() 加载 history列表中的前一个URL。 (3)forward() 加载 history 列表中的下一个URL。 (4)go() 加载history列表中的某个具体页面。
12、final修饰的方法,不允许被子类覆盖。 final修饰的类,不能被继承。 final修饰的变量,不能改变值。 final修饰的引用类型,不能再指向别的东西,但是可以改变其中的内容。
13、volatile volatile用于限定变量只能从内存中读取,保证对所有线程而言,值都是一致的。但是volatile不能保证原子性,也就不能保证线程安全。 volatile关键字用在多线程同步中,可保证读取的可见性 JVM保证从主内存加载到线程工作内存的值是最新的 volatile能禁止进行指令重排序
14、java的访问权限有public、protected、private和default的,default不能修饰变量 普通变量不能用abstract修饰,abstract一般修饰方法和类
15、PreparedStatement与Statement PreparedStatement比Statement执行效率更高 PreparedStatement会预编译SQL语句 Statement每次都会解析/编译SQL,确立并优化数据获取路径
16、方法名相同,参数类型相同 子类返回类型小于等于父类方法返回类型, 子类抛出异常小于等于父类方法抛出异常, 子类访问权限大于等于父类方法访问权限。 17、加载驱动方法 1.Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 2. DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 3.System.setProperty("jdbc.drivers", "com.mysql.jdbc.Driver");
18、Applet显示相关的方法主要有3个。 1. paint(Graphicsg)方法,具体执行Applet的绘制。 2. update(Graphicsg)()方法,主要用于更新Applet的显示。 3. repaint()方法,主要用于Applet的重新显示,它调用update()方法实现对Applet的更新。
以上是关于Java零散知识2的主要内容,如果未能解决你的问题,请参考以下文章