package com.lee; import java.util.HashMap; import java.util.Random; public class tips { public static void main(String[] args) { // 在if()内的判断语句少写一个"="时,仍然能被执行。括号内执行赋值语句。 // 但判断条件不成立,会执行else语句。 boolean testa = false; boolean testb; if (testb = testa) { System.out.println("testa: " + testa); } else { System.out.println("testb: " + testb); } // 虽然执行了str.replace('A', 'X'),但输出结果仍是ABC,而非XBC String str = "ABC"; str.replace('A', 'X'); // str = str.replace('A', 'X'); System.out.println(str); // 怎么样把一个double型转成int型 // 其JDK1.5以后就改了吧?好像是,可直接强转int testd = (int) testc // 为了更确定一下他的考试思路,还可以用其它的方法吧? double testc = 1000.09; int testd = (int) testc; System.out.println("testd: " + testd); // 联想到把字符串转成int型,应该是常用到的吧。 String testf = "100"; Integer in = new Integer(testf); int testg = in.intValue(); int testg2 = Integer.parseInt(testf); System.out.println("testg: " + testg); System.out.println("testg2: " + testg2); // 貌似有考instenceof.具体的忘记了 // instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。 // instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。 boolean testh; String str2 = "123"; testh = (str2 instanceof String); // true System.out.println("str2 instanceof String: " + testh); testh = (str2 instanceof Object); // also true System.out.println("str2 instanceof Object: " + testh); // testh = ( str instanceof Date ); // false, not a Date or subclass // null值不是任何对象的实例,所以下面这个例子返回了false,无论这个变量声明的是什么类型。 String testi = null; boolean testjj = (testi instanceof String); System.out.println("null instanceof String: " + testjj); // Java打印一布尔型变量是true还是1? boolean testk = true; System.out.println("Java打印一布尔型变量是true还是1?: " + testk); System.out.println("============小节的分割线==============="); System.out.println(100.0 * 0.6); int a1 = 'A'; System.out.println(a1); // System.out.println(Integer.parseInt("+1"));//运行错误 int b1 = 0; // if (b1){} //java中if里必为boolean String b2 = "helloworld!"; System.out.println(b2.substring(2, 5)); // 从第二个到第四个,第五个不包括 输出llo System.out.println(b2.substring(2, 2)); // 不输出 String b3 = "abdcdedf"; int x1 = b3.lastIndexOf("cd", 4); int x2 = b3.lastIndexOf('d', 2); int x3 = b3.lastIndexOf('d', 1); System.out.println("x1: " + x1); System.out.println("x2: " + x2); System.out.println("x3: " + x3); // x1从数组第4个开始找,即从第二个d开始,退找遇到的第一个以cd开始的子串,返回cd中的c的位置 // x2,从第2个开始到前面第一个字符,在这个子串中找最后一个出现的d。即,从d开始从abd中找到d的位置为2。 // 如果找不到,则返回-1 HashMap hm = new HashMap(); hm.put("abc", null); System.out.println(hm.toString()); System.out.println(hm.values()); int sizeof = 3; // sizeof不是关键字,可用于变量命名 int TRUE = 3; // true是关键字,TRUE不是关键字 //int goto = 3;//goto是关键字 String bs = "hello"; String bt = "hello"; char bc[] = { 'h', 'e', 'l', 'l', 'o' }; System.out.println(bs.equals(bc)); // 输出false System.out.println(bs.equals("hello")); // 输出true System.out.println(bc); // 输出hello System.out.println(bs == bt); // true System.out.println("============2@小节的分割线==============="); short b4 = 1; // b4=b4+1; 编译不通过 b4 += 1; // 编译通过 String r5 = "hello"; r5 += "there"; System.out.println("r5: " + r5); // char r6=r5[3]; 这样写是不对的 int i = r5.length(); r5 = r5 + 3; System.out.println("r5: " + r5); System.out.println(4 | 7); // 输出7 //4的二进制:0100 7的二进制:0111 输出:0111 System.out.println(4 & 7); // 输出4 //4的二进制:0100 7的二进制:0111 输出:0100 System.out.println(3 | 2); // 输出3 //3: 0011 2: 0010 0011 System.out.println(3 | 6); // 输出7 //3: 0011 6: 0110 0111c String b16 = "hello"; int b21 = 6; b21 >>>= 1; System.out.println("b21: " + b21); int b19 = b16.length(); System.out.println("b19: " + b19); // char b17=b16[1]; String[] b18 = { "hello", "java" }; int b20 = b18.length; // 字符串用length(),数组用length System.out.println("b20: " + b20); int b22 = 2; // 不用第三个变量来交换两个变量的数值 int b23 = 5; b23 = b22 + b23; b22 = b23 - b22; b23 = b23 - b22; System.out.println("b22: " + b22); System.out.println("b23: " + b23); // System.out.println(Integer.parseInt("+1")); // 上面的句子抛出:java.lang.NumberFormatException异常 int x = 1, y = 2, z = 3; y += z-- / ++x; int b15 = 3 / 2; System.out.println("b15:" + b15); System.out.println("y:" + y); int aa = 0x22; int bi = 1; int bj; bj = bi++; System.out.println("bi: " + bi + "bj: " + bj); System.out.println(aa); float[] b24[] = new float[5][6]; float[][] b25 = new float[6][6]; float b26[][] = new float[5][]; // float []b27[] = new float[][6]; //error // float b8=2.0; //error double b9 = 2.0; long b10 = 2; System.out.println("Math.round(11.4): " + Math.round(11.4)); //11 四舍五入,最近的一个长整形 System.out.println("Math.round(11.5): " + Math.round(11.5)); // 12 System.out.println("Math.round(-11.4): " + Math.round(-11.4)); // -11 System.out.println("Math.round(-11.5): " + Math.round(-11.5)); //-11 System.out.println("正数:Math.round(11.68)=" + Math.round(11.68)); //12 System.out.println("负数:Math.round(-11.68)=" + Math.round(-11.68)); //-12 System.out.println("============3#小节的分割线==============="); int c1 = 1; boolean[] c2 = new boolean[3]; boolean c3 = c2[c1]; System.out.println("c3: " + c3); Random random = new Random(); int n = random.nextInt(100); System.out.println("n: "+n); StringBuffer sb = new StringBuffer(); for (int i1 = 0; i1 <= n; i1++) { int c = random.nextInt(255); if ((c <= '9' && c >= '0') || (c <= 'Z' && c >= 'A') || (c <= 'z' && c >= 'a')) { sb.append((char) c); i1++; } } System.out.println(sb.toString()); } } /* * 匿名内部类就是没有名字的内部类。什么情况下需要使用匿名内部类?如果满足下面的一些条件,使用匿名内部类是比较合适的: ·只用到类的一个实例。 * ·类在定义后马上用到。 ·类非常小(SUN推荐是在4行代码以下) ·给类命名并不会导致你的代码更容易被理解。 在使用匿名内部类时,要记住以下几个原则: * ·匿名内部类不能有构造方法。 ·匿名内部类不能定义任何静态成员、方法和类。 * ·匿名内部类不能是public,protected,private,static。 ·只能创建匿名内部类的一个实例。 * ·一个匿名内部类一定是在new的后面,用其隐含实现一个接口或实现一个类。 ·因匿名内部类为局部内部类,所以局部内部类的所有限制都对其生效。 */ /* * DB并发操作通常会带来三类问题,它们是丢失更新、不一致分析和读脏数据。 * * 为了保证数据库的完整性,事务必须具有原子性、一致性、隔离性、持久性四个性质,即事物ACID性质。 * * 表达式operator+(x,y)还可以表示为(x+y) * * 详细设计的任务是确定每个模块的内部特性,即模块的算法、( 使用的数据 )。 * * 数据总线用来在CPU与内存储器(或I/O设备)之间交换信息;地址总线由CPU发出 ,用来确定CPU要访问的内存单元(或I/O端口)的地址信号。 * * 用顺序存储的方法将完全二叉树中的所有结点逐层存放在数组A[1] ~ A[n]中,结点A[i]若有左子树, 则左子树的根结点是A[2i] * * 系统流程图是描述(体系结构)的工具 * * 正数的补码与原码相同,负数的补码是用正数的补码按位取反,末位加1求得。 若x补 =0.1101010 ,则 x 原=0.1101010 * 若[X]补=1.1011 ,则真值 X = -0.0101 [X]补=1.1011,其符号位为1,真值为负;真值绝对值可由其补码经求补运算得到, * 即按位取后得0.0100再末位加1得0.0101,故其真值为-0.0101。 * * Jsp路径太深文件名太长就无法读取文件,jsp路径最大长度是多少 255 * * 一个数据库表A(name varchar(10),age int),请写出一个SQL语句,按照age排序查出年龄最大的10条记录数 * * HashTable和HashMap的区别 1.HashTable的方法是同步的,HashMap未经同步 * 2.HashTable不允许null值(key和value都不可以),HashMap允许null值(key和value都可以)。 * 细见:http://blog.csdn.net/paincupid/archive/2009/11/21/4846699.aspx * * java变量命名规则:可以任何字母开始,另外还可以以"_"和"$"开始,一般"$"是很多代码生成器用的,不能以数字开头 * * octal 八进制 hex 十六进制 * * 递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和 public int sum(int a[],int n){ if * (n>0) return sum(a,n-1)+a[n-1]; else return 0; } * * 现在的服务器中寻找一种服务使用JNDI,全称Java Naming and Directory Interface * * 请填写你所知道的线程同步的方法:wait(); sleep(); notify(); notityAll() * * Servlet生命周期中有哪几个方法?2、 init(); service(); doGet()/doPost(); destroy() * * 多态、继承、封装 polymorphism inheritance encapsulation * * 在JSP中数据共享有四种范围,分别是page,request,session,application * * * */
答案:
testb: false
ABC
testd: 1000
testg: 100
testg2: 100
str2 instanceof String: true
str2 instanceof Object: true
null instanceof String: false
Java打印一布尔型变量是true还是1?: true
============小节的分割线===============
60.0
65
llo
x1: 3
x2: 2
x3: -1
{abc=null}
[null]
false
true
hello
true
============2@小节的分割线===============
r5: hellothere
r5: hellothere3
7
4
3
7
b21: 3
b19: 5
b20: 2
b22: 5
b23: 2
b15:1
y:3
bi: 2bj: 1
34
Math.round(11.4): 11
Math.round(11.5): 12
Math.round(-11.4): -11
Math.round(-11.5): -11
正数:Math.round(11.68)=12
负数:Math.round(-11.68)=-12
============3#小节的分割线===============
c3: false
n: 36
plYkkw