写出两种以上将String强制转换成int的方法?
int -> String
int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);
第三种方法:s=Integer.toString();
String -> int
s="12345";
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
两种跳转方式分别是什么?有什么区别?
1.forward跳转:<jsp:forward page="跳转页面地址" />
2.response跳转:response.sendRedirect("跳转页面地址");
forward跳转:\\服务器端跳转,地址栏不改变;
response跳转:\\客户端跳转,地址栏改变;
response.sendRedirect("跳转页面地址");
request.getRequestDispatcher("/message.jsp").forward(request, response);
Java 中八种基本数据类型占用字节空间
基本数据类型 所占用空间大小
byte b; 1字节
short s; 2字节
int i; 4字节
long l; 8字节
char c; 2字节(C语言中是1字节)
float f; 4字节
double d; 8字节
boolean bool; false/true
public static void main(String[] args) { int a=10,b=3,m=5; if(a==b) m+=a; else m=++a*m;//类似于 m=(++a)*m System.out.println(m); }
打印结果:55
public class Person { String name; double wage; public Person(String name){ this.name=name; } public Person(String name,double wage){ this.name=name; this.wage = wage; } public double getWage() { return wage; } public void setWage(double wage) { this.wage = wage; } public String getName() { return name; } public void setName(String name) { this.name = name; } public static void main(String[] args){ Person p = new Person("huangbiao",44); System.out.println(p.getWage()); } }
打印结果是:44.0
public class A { String str1="hello! \t"; String str2="how are you? "; public String toString(){ return str1+str2; } }
public class B extends A{ String str1="\b\b. Bill"; public String toString(){ return super.str1+str1; } }
public class Demo1 { public static void main(String[] args) { // TODO Auto-generated method stub A a = new A(); B b = new B(); System.out.println(a); System.out.println(b); } }
运行结果:
备注:
\b 单词边界
\f 换页符
\r 回车
\n 换行符
\t 制表符
\" 转义 “
\' 应该没有这个
\\ 转义 \
public static void main(String[] args) { int i=0; for(prt("a");prt("b")&&i<2;prt("c")){ System.out.print("-d-"); i++; } } static boolean prt(String a){ System.out.print("-"+a+"-"); return true; } }
运行结果: -a--b--d--c--b--d--c--b-
备注:最后一次需要执行prt("c")函数,然后再判断prt("b")&&i<2,不满足条件之后跳出循环。
设x为int型变量,则执行以下语句段后,x的值为:
x=10;
x+=x-=x-x;
A. 30
B. 20
C. 40
D. 10
定义字符串:String s1="hello";对下面程序描述正确的是:
public static void main(String args[]) { //字符串是存在“堆”中的,s1指向这个字符串,所以两者相等 String s1="hello"; if (s1 == "hello") { System.out.println("s1 = \"hello\""); } else { System.out.println("s1 !=hello"); } }
A. 输出 s1 !=hello
B. 编译正确,运行错误
C. 产生编译错误
D. 输出 s1="hello"
静态属性的访问
public class HasStatic { private static int x = 100; public static void main(String args[]) { HasStatic hs1 = new HasStatic(); hs1.x++; System.out.println(hs1.x); HasStatic hs2 = new HasStatic(); hs2.x++; System.out.println(hs2.x); hs1 = new HasStatic(); hs1.x++; System.out.println(hs1.x); HasStatic.x--; System.out.println(HasStatic.x); System.out.println("x=" + x); } }
运行结果:
101
102
103
102
x=102
java修饰符的范围
try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
public class Test { public static void main(String[] args) { System.out.println("main : " + new Test().test()); } static int test() { int x = 1; try { return x; } finally { ++x; System.out.println("finally : " + x); } } }
运行结果:
finally : 2
main : 1
public class Test { public static void main(String[] args) { System.out.println("main : " + new Test().test()); } static int test() { try { return 1; } finally { return 2; } } }
main : 2
Return并不是让函数马上返回,而是return语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行finally语句后才真正开始返回。
由于不同的数据库,存在不同的SQL,因此操作数据库的SQL代码也就存在差异,那么怎么样实现或者怎么去设计由一个对象来分别区分不同的SQL?
解决方式:
1、定义一个接口,然后由不同的对象去继承这个接口,然后分别实现的是Oracle或者是SQLSERVER等等
2、定义一个父类,实现多种数据库公共相同的部分,然后Oracle类实现oracle的操作,SQLSERVER类实现sqlserver的操作
上面两种方法就能够实现公共部分不需要重写而且区分不同的SQL了
list和set对象有什么区别?
1、List对象是可重复的,有序的
2、set对象是不可重复的,无序的
根据上面的特性,可以去掉重复的部分,比如说是得到两个数组的并集,且不需要重复的部分,就可以利用set的特性
什么是Hibernate的“懒加载”?
目的:为了减少和数据库交互的次数,推迟和数据库交互的时间
过程:Hibernate从数据库获取某一个对象时,获取某一个对象的集合属性值时,或获取某一个对象所关联的另一个对象时,由于没有使用该对象的数据,Hibernate并不从数据库加载真正的数据,而只是为该对象创建一个代理对象来代表这个对象,这个对象上的所有属性都为默认值,只有在真正需要使用该对象的数据时才创建这个真正的对象,真正从数据库中加载它的数据,在某种情况下,可以提高查询效率。
在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来弥补这种缺陷,但是这只是弥补而不是用了懒加载总体性能就提高了。
我们所说的懒加载也被称为延迟加载,它在查询的时候不会立刻访问数据库,而是返回代理对象,当真正去使用对象的时候才会访问数据库。
使用oracle怎么查询age(年龄)最大的前三位
select rownum,p.* from (select * from person order by age desc) p where rownum<=3;
备注:oracle没有limit和top这个关键字,但是存在rownum这个字段,可以用来限制查询数量
如果使用mysql查询前面几行的结果集使用的方式是
select * from employee limit 5;
String s = new String("xyz");创建了几个String Object?
解答 : 两个
备注:String每次都会在内存中开辟一个新的对象空间,不会像指针那样传递值。
public String getStr(String str){ if(str.equals("str")){ System.out.println("if"); return "str"; } System.out.println("result"); return "result"; }
如果传递的参数是str字符串,则只会打印if,而后面的result是不会打印出来的,return "str"之后就直接跳出方法了