request.getContextPath() 返回站点的根目录
request.getRealpath(“/”)得到的是实际的物理路径,也就是你的项目所在服务器中的路径
request.getScheme() 等到的是协议名称,默认是http
request.getServerName() 得到的是在服务器的配置文件中配置的服务器名称 比如:localhost .baidu.com 等等
request.getServerPort() 得到的是服务器的配置文件中配置的端口号 比如 8080等等
单个与操作的符号& 用在整数上是按位与,用在布尔型变量上跟&&功能类似,但是区别是无论前面是否为真,后面必定执行。
以debug方式运行java程序后
(F5)单步执行程序,遇到方法时进入;
(F6)单步执行程序,遇到方法时跳过;
(F7)单步执行程序,从当前方法跳出;
(F8)直接执行程序。遇到断点时暂停;
throw语句后的语句永远不会执行,编译报错。
Java中的逻辑判断只能是Boolean类型。没有C/C++中非0既是true的特性。
m叉赫夫曼树中:存在度为0的结点(即叶结点)x个和度为m的结点y个,存在等式 x+y=my+1;
对于任意一颗二叉树,若其叶子节点为n0,度为2的节点为n2,则n0 = n2+1。
定义和声明的最重要区别就是:
定义创建对象并为这个对象分配了内存,声明没有分配内存。
接口只能和public 关键字连用。
Java标识符的命名规则:
1) 标识符由字母、数字、下划线“_”、美元符号“$”或者人民币符号“¥”组成,并且首字母不能是数字。
2) 不能把关键字和保留字作为标识符。
3) 标识符没有长度限制。
4) 标识符对大小写敏感。Java编程规范:1)类名和接口名:首字母大写,其余字母小写。如SamDoc
2)方法名和变量名:首字母小写,其余的字母大写。
如bothEyesOfDoll。
3)包名:字母全部小写。如,com.abc.dollapp。
4)常量名:采用大写形式,单词之间以下划线“_”隔开。
所有的正无穷大数值都是相等的,所用的负无穷大数值都是相等的,,而NaN不和任何数值相等,甚至和NaN都不相等。只有浮点数除以0才能得到正无穷大或者负无穷大,如果一个整数除以0会抛出异常。
float型数值:第一位时符号位,接下来的8为表示指数,再接下来的23位表示尾数;对于double类型数值,第一位也是符号位,接下来的11位表示指数,再接下来的52位表示尾数。尾数在数学里,专门用来指小数点后面的数字,现实生活中也指记账等号码的后几位,常用在手机号码、身份证号码等。
转义字符:

public class JustTest {
    public static void main(String[] args)
    {
        System.out.println('A');
        System.out.println('\b');//退格符
        System.out.println('\n');//换行符
        System.out.println('\r');//回车符
        System.out.println("\'");//单引号
        System.out.println('\t');//制表符
        System.out.println('\\');//反斜线
        System.out.println('\"');//双引号

    }
}

运行结果:
A

\

数组求长度用length属性;
字符串求长度用length()方法;
集合求长度用size()方法;
数组的toString()方法是Object的toString()方法,返回的不是一个字符串,可以使用Arrays类的toString()方法;

import java.math.BigDecimal;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    public class format {
        double f = 111231.5585;
        public void m1() {
            BigDecimal bg = new BigDecimal(f);
            double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            System.out.println(f1);
        }
        /**
         * DecimalFormat转换最简便
         */
        public void m2() {
            DecimalFormat df = new DecimalFormat("#.00");
            System.out.println(df.format(f));
        }
        /**
         * String.format打印最简便
         */
        public void m3() {
            System.out.println(String.format("%.2f", f));
        }
        public void m4() {
            NumberFormat nf = NumberFormat.getNumberInstance();
            nf.setMaximumFractionDigits(2);
            System.out.println(nf.format(f));
        }
        public static void main(String[] args) {
            format f = new format();
            f.m1();
            f.m2();
            f.m3();
            f.m4();
        }
    }

下面代码将输出什么内容:(false)

public class SystemUtil{ 
 public static boolean isAdmin(String userId){ 
 return userId.toLowerCase()==”admin”; 
 } 
 public static void main(String[] args){ 
 System.out.println(isAdmin(“Admin”)); 
 } 
 }


原因是:在源码中 toLowerCase 是重新 new String()
所以为 == 是比较对象是否是同一个对象,所以为 false

<————–未完待续—————->