jdk7中switch表达式可以是String。这算不算
解决方案 »
- 关于java窗体程序
- final 类 构造方法请教,急!
- 用swing + hibernate3 时遇到的一个异常
- JButton只能是长方形的,可不可是圆形,三角形或任何形状?
- 有关同步--怎么向数据库中插入时间
- 再问Linux下怎么设好jdk路径再任何处可用??
- jbuilder里面怎么观察一个变量在程序运行时变化的过程?
- 简单的继承问题..........
- ###做程序需要用到java duke的图标,知道哪里有下载吗(除了JDK里带的)
- 如何洗牌
- 请教一个java httpsUrlConnection保持session会话的问题
- 提问 问题标签用户 关于Myeclipse的错误org.springframework.beans.factory.BeanCreationException
String name = "张三";
int age = 20;
System.out.printf("您的姓名是:%s,年龄是:%d", name, age);
INSTANCE;
public void dosth() {
System.out.println("do sth....");
}
}public class Test {
public static void main(String[] args) {
Singleton singleton = Singleton.INSTANCE;
singleton.dosth();
}
}
System.out.println(((Math) null).random());
public PrintWriter format(String format, Object ... args);
其实如果是少量字符串的拼接操作,可以使用+操作。如果拼接比较频繁,就可以按照你的讲法来实现了。
现在使用StringBuilder。 + 操作会被编译器转成 StringBuilder的append
猜测静态方法,只和类有关,无需判断对象。
值将被忽略是啥意思啊?我试了下如下代码,是可以正确取得结果的:
Math m = null;
System.out.println(m.random());
打印一串小数。
看上哪个回复,点下“对我有用”呗?其实如果是少量字符串的拼接操作,可以使用+操作。如果拼接比较频繁,就可以按照你的讲法来实现了。
我说的是+的内部实现过程
我懂你的意思,学习啦~
请问,这种操作符的内部处理,有没有相关的博文或者书籍呀?
其实如果是少量字符串的拼接操作,可以使用+操作。如果拼接比较频繁,就可以按照你的讲法来实现了。
现在使用StringBuilder。 + 操作会被编译器转成 StringBuilder的append
多谢分享。~
StringBuilder线程不安全,因此大家在使用+操作拼接字符串的时候,要注意线程安全问题。
Nice~
求看后感...
System.out.printf("%s,%d,%.2,%n(换行)");
如下代码,也是可以运行的。public class 测试 {
public static void main(String[] args) {
String 姓名="张三";
int 年龄=30;
System.out.printf("姓名:%s,年龄:%d",姓名,年龄);
}
}
c的性能比java高,那得看是做什么类型的应用。现在java的性能已经不是问题了,虽然说理论上肯定没有c的性能高,但是在有些应用,如web,java的性能会表现的非常高,因为用c来开发这种应用,会消耗大量的开发成本且不一定效率就比java高多少,用c稍微处理不好的话(不是所有的程序员都能保证程序中没有失误)还不如java。另外把用java开发降低成本的钱多买台服务器,做个集群,比c写的性能肯定更好。
静态方法绑定会绕过对具体 reference 的检查,这个以前真不知道。
专门去查了 JLS 7 编译时方法绑定的部分,于是有了下面的代码,猜猜看能不能编译,如果能,这些方法调用都输出什么:
public class MethodDeterminationTest {
public static void main(String[] args) {
Object o = "abc";
MethodDeterminationTest.print(o);
MethodDeterminationTest.<String>print("abcd");
MethodDeterminationTest.<Integer>print(5);
MethodDeterminationTest.<Integer>print("abcd");
((MethodDeterminationTest)null).<Number>print(5.0);
}
public static <E> void print(E e) {
System.out.println("generic " + e);
}
public static void print(String s) {
System.out.println(s);
}
}
其实知道这些大概也很少用到,不过可能极少数的情况当你debug别人糟糕至极的overloading代码的时候,知道这些脑子里至少会有一根警惕的弦。
静态方法绑定会绕过对具体 reference 的检查,这个以前真不知道。
专门去查了 JLS 7 编译时方法绑定的部分,于是有了下面的代码,猜猜看能不能编译,如果能,这些方法调用都输出什么:
public class MethodDeterminationTest {
public static void main(String[] args) {
Object o = "abc";
MethodDeterminationTest.print(o);
MethodDeterminationTest.<String>print("abcd");
MethodDeterminationTest.<Integer>print(5);
MethodDeterminationTest.<Integer>print("abcd");
((MethodDeterminationTest)null).<Number>print(5.0);
}
public static <E> void print(E e) {
System.out.println("generic " + e);
}
public static void print(String s) {
System.out.println(s);
}
}
其实知道这些大概也很少用到,不过可能极少数的情况当你debug别人糟糕至极的overloading代码的时候,知道这些脑子里至少会有一根警惕的弦。加两条:
MethodDeterminationTest.print(null);
MethodDeterminationTest.<Integer>print(null);
静态方法绑定会绕过对具体 reference 的检查,这个以前真不知道。
专门去查了 JLS 7 编译时方法绑定的部分,于是有了下面的代码,猜猜看能不能编译,如果能,这些方法调用都输出什么:
public class MethodDeterminationTest {
public static void main(String[] args) {
Object o = "abc";
MethodDeterminationTest.print(o);
MethodDeterminationTest.<String>print("abcd");
MethodDeterminationTest.<Integer>print(5);
MethodDeterminationTest.<Integer>print("abcd");
((MethodDeterminationTest)null).<Number>print(5.0);
}
public static <E> void print(E e) {
System.out.println("generic " + e);
}
public static void print(String s) {
System.out.println(s);
}
}
其实知道这些大概也很少用到,不过可能极少数的情况当你debug别人糟糕至极的overloading代码的时候,知道这些脑子里至少会有一根警惕的弦。
求指教:
MethodDeterminationTest.<String>print("abcd");//编译失败,因为下面已经有了print(String s)方法的定义,优先使用类型明确的方法,前面加了泛型判断,所以报错了?
是这样的么?
静态方法绑定会绕过对具体 reference 的检查,这个以前真不知道。
专门去查了 JLS 7 编译时方法绑定的部分,于是有了下面的代码,猜猜看能不能编译,如果能,这些方法调用都输出什么:
public class MethodDeterminationTest {
public static void main(String[] args) {
Object o = "abc";
MethodDeterminationTest.print(o);
MethodDeterminationTest.<String>print("abcd");
MethodDeterminationTest.<Integer>print(5);
MethodDeterminationTest.<Integer>print("abcd");
((MethodDeterminationTest)null).<Number>print(5.0);
}
public static <E> void print(E e) {
System.out.println("generic " + e);
}
public static void print(String s) {
System.out.println(s);
}
}
其实知道这些大概也很少用到,不过可能极少数的情况当你debug别人糟糕至极的overloading代码的时候,知道这些脑子里至少会有一根警惕的弦。
求指教:
MethodDeterminationTest.<String>print("abcd");//编译失败,因为下面已经有了print(String s)方法的定义,优先使用类型明确的方法,前面加了泛型判断,所以报错了?
是这样的么?
你的 Java 是什么版本? 我用 Java 6 (IDE Netbeans 7.2) 编译运行都没问题。
静态方法绑定会绕过对具体 reference 的检查,这个以前真不知道。
专门去查了 JLS 7 编译时方法绑定的部分,于是有了下面的代码,猜猜看能不能编译,如果能,这些方法调用都输出什么:
public class MethodDeterminationTest {
public static void main(String[] args) {
Object o = "abc";
MethodDeterminationTest.print(o);
MethodDeterminationTest.<String>print("abcd");
MethodDeterminationTest.<Integer>print(5);
MethodDeterminationTest.<Integer>print("abcd");
((MethodDeterminationTest)null).<Number>print(5.0);
}
public static <E> void print(E e) {
System.out.println("generic " + e);
}
public static void print(String s) {
System.out.println(s);
}
}
其实知道这些大概也很少用到,不过可能极少数的情况当你debug别人糟糕至极的overloading代码的时候,知道这些脑子里至少会有一根警惕的弦。
求指教:
MethodDeterminationTest.<String>print("abcd");//编译失败,因为下面已经有了print(String s)方法的定义,优先使用类型明确的方法,前面加了泛型判断,所以报错了?
是这样的么?
你的 Java 是什么版本? 我用 Java 6 (IDE Netbeans 7.2) 编译运行都没问题。
1.5的
int i=0;
i=i++;
System.out.println(i);输出结果为0;后自增原理:首先声明一个临时变量存储i未自增的值 int temp=i; 即此时 temp=0
然后i自增加1, i=i+1; 最后返回temp, 即return temp;
也就是说 在最后执行到i=i++; 的时候 因为++的运算符优先级 高于=, 所以 i会等于 i++; 的返回值,即 i=temp=0;.....在这段程序i的变化时 i...>0.....>1.....>0
所以
aObject != null && aObject instanceof Xxxx 前面的非null判断是多余的。=============================================Collections.<String,Integer>emptyMap()=============================================
public class Baz<T extends Foo & Bar> {}==============================================
List<Integer> numbers = new ArrayList<Integer>(){{ add(1); add(2); }};Map<String,String> codes = new HashMap<String,String>(){{
put("1","one");
put("2","two");
}};
public class Test2
{ public static void main(String[] args)
{
/*Map<String, Integer> map1 = Collections.<String, Integer> emptyMap();
map1.put("a", 111);
System.out.println(map1.get("a"));*///空map,有何作用?
Baz baz = new Baz(new MyT());
baz.showFun();
}
}
class Baz<T extends Foo & Bar>//Bar 必须为接口
{ private T t; public Baz(T t)
{
this.t = t;
} public void showFun()
{
t.fooFun();
t.barFun();
}
}
class Foo
{ public void fooFun()
{
System.out.println("fooFun...");
}
}
interface Bar
{ void barFun();
}
class MyT
extends Foo
implements Bar
{ public void barFun()
{
System.out.println("barFun");
}
}请问,关于那个空Map的作用,不晓得在什么场景下会用到?(put、get都抛异常的)
double a = 2.5555;
BigDecimal b = new BigDecimal(a);
double aa = b.setScale(3, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println(aa);
注意:因为小数a本身就在计算机中存储不精确,所有输出结果是2.555;如果要避免这种问题BigDecimal b = new BigDecimal(a);括号的要传入字符串类型即用构造方法Bigdecimal(String s).
你知道除了System.out 还有个System.err么
你知道除了System.out 还有个System.err么为啥这么问我?
你知道除了System.out 还有个System.err么为啥这么问我?我以为你不知道,告诉你一下。