zoukankan      html  css  js  c++  java
  • java基础知识拾遗(四)

    1.Runnable对象

    启动线程:(new Thread(new MyRunnable()).start()

    2.jsp中<%@ page language="java" import="java.util.*" errorPage="error.jsp" isErrorPage="false" %> 

    改页面不能使用exception对象

    3.枚举

    enum AccountType
    {
        SAVING, FIXED, CURRENT;
        private AccountType()
        {
            System.out.println("It is a account type");
        }
       
    }
    class EnumOne
    {
        public static void main(String[]args)
        {
            System.out.println(AccountType.FIXED);
           
        }
    }

    以上代码输出3遍It is a account type加上FIXED

    4.jsp中静态include和动态include的区别

    动态 INCLUDE 用 jsp:include 动作实现 <jsp:include page="included.jsp" flush="true" /> 它总是会检查所含文件中的变化 , 适合用于包含动态页面 , 并且可以带参数。各个文件分别先编译,然后组合成一个文件。

    静态 INCLUDE 用 include 伪码实现 , 定不会检查所含文件的变化 , 适用于包含静态页面 <%@ include file="included.htm" %> 。先将文件的代码被原封不动地加入到了主页面从而合成一个文件,然后再进行翻译,此时不允许有相同的变量。 

    以下是对 include 两种用法的区别 , 主要有两个方面的不同 ;

        一 : 执行时间上 :

        <%@ include file="relativeURI"%> 是在翻译阶段执行

        <jsp:include page="relativeURI" flush="true" /> 在请求处理阶段执行 .

        二 : 引入内容的不同 :

        <%@ include file="relativeURI"%>

        引入静态文本 (html,jsp), 在 JSP 页面被转化成 servlet 之前和它融和到一起 .

        <jsp:include page="relativeURI" flush="true" /> 引入执行页面或 servlet 所生成的应答文本 .

    5.java标识符

    标识符是用来表示常量、变量、标号、方法、类,接口以及包的名字。

    1. 只能使用字母、数字、下划线和美元符。
    2. 只能以字母、下划线和美元符开头,不能用数字开头。
    3. 严格区分大小写,没有长度限制。
    4. 不能使用Java关键字

    6.java web开发实现会话跟踪的方式

    有四种方法可以实现会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。
    1)隐藏表单域:<input type="hidden">,非常适合步需要大量数据存储的会话应用。
    2)URL 重写:URL 可以在后面附加参数,和服务器的请求一起发送,这些参数为名字/值对。
    3)Cookie:一个 Cookie 是一个小的,已命名数据元素。服务器使用 SET-Cookie 头标将它作为 HTTP
    响应的一部分传送到客户端,客户端被请求保存 Cookie 值,在对同一服务器的后续请求使用一个
    Cookie 头标将之返回到服务器。与其它技术比较,Cookie 的一个优点是在浏览器会话结束后,甚至
    在客户端计算机重启后它仍可以保留其值
    4)Session:使用 setAttribute(String str,Object obj)方法将对象捆绑到一个会话

    7.ant和maven

    Ant和Maven都是基于Java的构建(build)工具。理论上来说,有些类似于(Unix)C中的make ,但没有make的缺陷。Ant是软件构建工具,Maven的定位是软件项目管理和理解工具。 
    Ant特点 ›
    没有一个约定的目录结构 ›必须明确让ant做什么,什么时候做,然后编译,打包 ›没有生命周期,必须定义目标及其实现的任务序列 ›没有集成依赖管理 
    Maven特点 
    ›拥有约定,知道你的代码在哪里,放到哪里去 ›拥有一个生命周期,例如执行 mvn install 就可以自动执行编译,测试,打包等构建过程 ›只需要定义一个pom.xml,然后把源码放到默认的目录,Maven帮你处理其他事情 ›拥有依赖管理,仓库管理

    8.java不同精度的基本类型之间比较

    java核心卷I中43页有如下表述:两个数值进行二元操作时,会有如下的转换操作:
    如果两个操作数其中有一个是double类型,另一个操作就会转换为double类型。
    否则,如果其中一个操作数是float类型,另一个将会转换为float类型。
    否则,如果其中一个操作数是long类型,另一个会转换为long类型。
    否则,两个操作数都转换为int类型。
     
    9.每个子类在创建时都会创建一个对应的父类
    public class Parent {
    
        static {
            System.out.println("父类静态代码块");
        }
        {
            System.out.println("父类代码块");
        }
        public Parent(){
            System.out.println("父类构造函数");
        }
    
    }
    class Child extends Parent{
        static {
            System.out.println("子类静态代码块");
        }
        {
            System.out.println("子类代码块");
        }
        public Child(){
            System.out.println("子类构造函数");
        }
        public static void main(String[] args){
            new Child();
            System.out.println("----------");
            new Child();
        }
    }

    以上代码输出结果:

    父类静态代码块
    子类静态代码块
    父类代码块
    父类构造函数
    子类代码块
    子类构造函数
    ----------
    父类代码块
    父类构造函数
    子类代码块
    子类构造函数

    9.java垃圾回收相关

    java提供了一个系统级的线程,即垃圾回收器线程。用来对每一个分配出去的内存空间进行跟踪。当JVM空闲时,自动回收每块可能被回收的内存,GC是完全自动的,不能被强制执行。程序员最多只能用System.gc()来建议执行垃圾回收器回收内存,但是具体的回收时间,是不可知的。

    10.this(),super()

    两者都必须被放在程序的最开始执行

    11.byte类型加操作

    byte b1=1,b2=2,b3,b6; 
    final byte b4=4,b5=6; 
    b6=b4+b5; 
    b3=(b1+b2); 
    System.out.println(b3+b6);

    b3=(b1+b2)编译时错误

    被final修饰的变量是常量,这里的b6=b4+b5可以看成是b6=10;在编译时就已经变为b6=10了
    而b1和b2是byte类型,java中进行计算时候将他们提升为int类型,再进行计算,b1+b2计算后已经是int类型,赋值给b3,b3是byte类型,类型不匹配,编译不会通过,需要进行强制转换。
    Java中的byte,short,char进行计算时都会提升为int类型。
  • 相关阅读:
    通达信自动交易软件 z
    keybd_event跟SendMessage,PostMessage模拟键盘消息的区别 z
    55人班37人进清华北大的金牌教师之32条教育建言! z
    SafeHandle和Dispose z
    Path类型的扩展方法 z
    BinaryReader和BinaryWriter的leaveOpen参数 z
    SQL locate()函数
    MySQL 的instr函数
    新建实体的字段不能够是数据库的关键字
    JS isNaN()函数
  • 原文地址:https://www.cnblogs.com/vinozly/p/5405791.html
Copyright © 2011-2022 走看看