几道小小的题目一起和大家更进一步地了解 Java (Ⅳ)
这是小题目的系列之四
之一:http://topic.csdn.net/u/20070828/10/7aa61fbc-8575-4212-85c4-582c08f81535.html
之二:http://topic.csdn.net/u/20070917/10/928cdd3b-0ec6-4236-a89d-7c3ddba8eaba.html
之三:http://topic.csdn.net/u/20080130/17/7fdd8b93-bdd6-467a-863e-fc3c9731bc52.html
做题规则:老规矩,不允许上机操作,全部完成后可以将代码复制自行检测一下,需采用 JDK 5.0 或以上版本
1,诡异的 Set
看看下面的这段程序,输出的是_____。
A. 4
B. 5
C. 6
D. 以上都不是
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashSet;
import java.util.Set;
public class Test1 {
private static final String[] URL_NAMES = {
"http://javapuzzlers.com",
"http://apache2-snort.skybar.dreamhost.com",
"http://www.google.com",
"http://javapuzzlers.com",
"http://findbugs.sourceforge.net",
"http://www.cs.umd.edu"
};
public static void main(String[] args) throws MalformedURLException {
Set <URL> favorites = new HashSet <URL>();
for (String urlName : URL_NAMES)
favorites.add(new URL(urlName));
System.out.println(favorites.size());
}
}
import java.util.Random;public class Test2 { public static void main(String[] args) { Random rnd = new Random(); boolean toBe = rnd.nextBoolean(); Number result = (toBe || !toBe) ? new Integer(3) : new Float(1); System.out.println(result); }}public Student get(Serializable id) { return (Student)getHibernateTemplate().load(Student.class, id);}public List<Student> getAll() { return (List<Student>)getHibernateTemplate().loadAll(Student.class);}public void save(Student stu) { getHibernateTemplate().saveOrUpdate(stu);}public void remove(Student stu) { getHibernateTemplate().delete(stu);}public void update(Student stu) { getHibernateTemplate().update(stu);}
public StudentHibernateDao extends HibernateSupportDao implements StudentDao; +-------------------------------+ class of Spring --> | <<abstract>> | | HibernateDaoSupport | +-------------------------------+ A | |<------ DAO Interface Package ------->|<- Hibernate Impleme|ntation Package -> | |+-------------------------------+ | +-------------------------------+| <<interface>> | | | || StudentDao | | | StudentHibernateDao |+-------------------------------+ | +-------------------------------+| + get(Serializable) : Student | | | + get(Serializable) : Student || + getAll() : List<Student> |<- - - - -| + getAll() : List<Student> || + save(Student) : void | | | + save(Student) : void || + remove(Student) : void | | | + remove(Student) : void || + update(Student) : void | | | + update(Student) : void || + method1() | | | + method1() || + method2() | | | + method2() || + ... | | | + ... |+-------------------------------+ | +-------------------------------+ |<- - - - 表示实现接口(不表示依赖哦,因为在半角状态下我找了好久都没找到向左的空心三角啦, 将究着看看,不要要求太高哈)A| 表示继承(就把 A 的两个脚去掉,看成向上的空心三角哈)|
PS-4:本帖非散分帖,谢谢配合。(不要拿烂番茄扔果子哦,果子最不喜欢洗衣服了。嗯~~~ 实在要扔的话,就拿好的小番茄直接扔到果子嘴里吧,嘻嘻~~~)
[解决办法]
o(∩_∩)o...哈哈 沙发先帮顶再说
[解决办法]
楼主辛苦了
[解决办法]
我可以以接分为主嘛?
[解决办法]
HOHo 先占座 再看题
[解决办法]
楼主辛苦了,幫忙頂一下
[解决办法]
老实讲,我认为排版就很精致,可以看出楼主很细心。
[解决办法]
挺有挑战性的
标记 慢慢看
[解决办法]
内容我都没有看,但是我觉得这是我见过的CSDN最漂亮的帖子了,呼吁加精华!
[解决办法]
public class Test1 { private static final String[] URL_NAMES = { "http://javapuzzlers.com", "http://apache2-snort.skybar.dreamhost.com", "http://www.google.com", "http://javapuzzlers.com", "http://findbugs.sourceforge.net", "http://www.cs.umd.edu", "http://www.cs.umd.edu", "http://www.cs.umd.edu" }; public static void main(String[] args) throws MalformedURLException { Set<URL> favorites = new HashSet<URL>(); for (String urlName : URL_NAMES) favorites.add(new URL(urlName)); System.out.println(favorites.size()); } private static class URL { private String urlName = ""; private URL(String strURLName) { this.urlName = strURLName; } public boolean equals(Object obj) { return true; } public int hashCode() { int result = 17; return result; } }}
[解决办法]
我不是指16楼,是那个发广告的
[解决办法]
2.答案应该是
D
Number result = (toBe || !toBe) ?new Integer(3) : new Float(1);
它的规则应该和
result = 3i+1f;
是一样的
[解决办法]
result = 3+1f;
------解决方案--------------------
private static final String[] URL_NAMES = { "http://javapuzzlers.com", "http://apache2-snort.skybar.dreamhost.com", "http://www.google.com", "http://javapuzzlers.com", "http://findbugs.sourceforge.net", };
[解决办法]
第二题是三目运算符的mixed type运算
且条件满足了binary numeric promotion of either operand
最终结果是一个Float
如果第二个操作数是一个可以用第一操作数表示的数 且本身为常量
则不会进行此种promotion操作
[解决办法]
mark,好东西
[解决办法]
学习中
[解决办法]
1.答案是
A
但我觉得题目应该是“诡异的 URL ”呵呵,
因为应该是 URL类中的
public boolean equals(Object obj);
public int hashCode();
暂时没搞清楚是pug还是它这样本身是合理的
[解决办法]
UP
[解决办法]
关于URL类的hashCode,
有兴趣可以看一下java.net.URLStreamHandler类
因为URL hashCode方法用的是父类的.
帖点给大家看
int h = 0; // Generate the protocol part. String protocol = u.getProtocol(); if (protocol != null) h += protocol.hashCode(); // Generate the host part. InetAddress addr = getHostAddress(u); if (addr != null) { h += addr.hashCode(); } else { String host = u.getHost(); if (host != null) h += host.toLowerCase().hashCode(); } // Generate the file part. String file = u.getFile(); if (file != null) h += file.hashCode(); // Generate the port part. if (u.getPort() == -1) h += getDefaultPort(); else h += u.getPort(); // Generate the ref part. String ref = u.getRef(); if (ref != null) h += ref.hashCode(); return h;
[解决办法]
第一题可以直接查阅JDK文档:
URL类重写了equals方法...其比对过程非常之猥琐咩咩...
[解决办法]
不喜欢网站方面的开发哦
[解决办法]
一边学习一边蹭分 哈哈
[解决办法]
up
[解决办法]
第一题是不是这样
只有5个非重复的URL
且能构成合法可用的只有4个 apache的那个service unavailable
如果断网的话 就等不出结果了
但我居然有一次运行出了结果5
[解决办法]
哦 是断网运行程序再连结果就是5
[解决办法]
[解决办法]
在连通网络状态下http://javapuzzlers.com与http://apache2-snort.skybar.dreamhost.com会解析出相同的HostAddress208.97.154.9,之后hostsEqual方法会优先调用并且向equals返回true
假如网络断开,equals会在hostsEqual方法中因为HostAddress同时为null而进行Host的比对,而它们的Host是不同的...这时返回false...
HostAddress解析结果不同是因为当网络连通时,URLStreamHandler类的getHostAddress方法能正常获取IP地址并返回;当网络断开时,getHostAddress会处理UnknownHostException异常而返回null...
[解决办法]
lz在43的API文档真美...
我的API对于URL的equals方法简单的描述为:"这个方法是重写的"-_-
这万恶的翻译,要偷懒也得保留原文啊咩咩...
[解决办法]
mark~~~
[解决办法]
new Test().getHostAddress(new URL(urlName))
[解决办法]
sign
[解决办法]
我大都都是回答不准确的。
[解决办法]
强帖留痕!
[解决办法]
肯定要火,留名再看
[解决办法]
"http://javapuzzlers.com",
"http://apache2-snort.skybar.dreamhost.com",
在IE里打开都不同,竟然是相同的URL,完全无语。
[解决办法]
第一题选D
[解决办法]
学习了
[解决办法]
第二题:3.0
测试环境:eclipse3.2.1
[解决办法]
上课去了,呵呵,其他的回来再看.
[解决办法]
收藏 慢慢看
[解决办法]
学习了,先做做
[解决办法]
看完了,不错!
[解决办法]
mark
[解决办法]
说心里话我真的很想知道第1题的答案,
A,B一定有一个答案是对的吧,
如果说答案是D,那是在什么情况下的呢,
有两情况,要么有网络,要么没网络,
难道是说情况不能确定就选D吗,
呵呵,有意思。
[解决办法]
先给你顶下,然后去看题
[解决办法]
慢慢研究!
[解决办法]
收藏了慢慢看
[解决办法]