Java Hour 61 基础概念拾遗
循环遍历器
for (Iterator iter = list.iterator(); iter.hasNext();) { int i = ((Integer) iter.next()).intValue(); sum += i; }
list接口继承了可枚举的接口,才有这个.itreator() 方法。
虽然中间过程比较的曲折:
public interface Collection<E> extends Iterable<E> {
当然返回的这个Iterator 也不一般
public interface Iterator<E> { boolean hasNext(); E next(); void remove(); }
常用个List
ArrayList
LinkedList
Java 泛型中的通配符
void printCollection(Collection<?> c) { c.add(new Object()); for (Object e : c) { System.out.println(e); } }
你无法把一个object 添加到这个? 类型中去。
List<? extends Shape>
这个比较容易理解,就是C# 中的泛型约束。
传说JVM 采用的是类型擦除的方法,所以这个其实是伪泛型。
Java 的接口中能够定义变量么
Java 接口中能够定义的其实是常量。
HashMap 和 HashCode
public class FunctionApp { private String name; public FunctionApp(String name) { this.name = name; } public int hashCode() { return 420; } }
该类重写了HashCode, 但是没有重写equal.
如果按照person key 来HashMap 中查找,因为所有的HashCode 都一样,需要遍历整个HashMap.
HashSet 和 HashMap的区别?
说白了就是Set 和 Map 的区别,Set 是一个集合,Map 是一个映射。
HashSet 内部其实是一个HashMap
transient 关键字
表示序列化对象的时候不需要序列化该字段。
HashSet 内部的 HashMap 当然不希望被序列化出现。
Man has a best friend who is a Dog
class Man { private Dog bestFriend; }
这个有点小意思,关键是is a Dogl, 表明类型是Dog.
子类的父类字段
public static void main(String[] args) { Foo f = new Bar(); f.addFive(); System.out.println(f.a); }
这里非常有意思,实例化的是子类,但是调用字段获取的其实还是父类的值。
可以看成类型指针改变了。
Interger 和 int
能简单的类比为C# 中整形的装箱和拆箱么?
关于Http 的Get 和Post
从Restful 风格以及语义上来说,Get 是取,Post 是提交。
但是现实总是精彩万分的,服务器端接受到后想怎么处理就怎么处理。
所谓的出现在URL 地址栏,或者是由什么长度限制之类的,都是浮云。
IE 或者微软自己搞出来的那,或者是服务器端限制了处理能力,出于对服务器的保护。
关于Session 和Cookie
基本上能分清楚是在服务器端和客户端就可以了。
Servlet 的生命周期
基本能谈到init, service, destory 差不多了
如果能够结合Tomcat 这个Servelt 容器谈谈具体的实现过程就更好了。
String StringBuffer StringBuilder
StringBuffer是线程安全的,StrinbBuilder不是线程安全的。
关于String 其实还字符串池可以包括。
Vector, ArrayList, LinkedList
Vector 线程安全,所以慢。
其他不用多说了。
Hashtable, Hashmap,TreeMap
Hashtable 线程安全,所以写入太慢。
Hashmap 线程不安全,但是可以一个方法获得同步的HashMap.
这里有个ConcurrentMap 出现了。
说实话,这个东西不熟,干脆还是不要多讲为好。
关于Java 内存模型
可以参加以前几个Hour 的成果。
关于数据库方面,没有问题。
关于垃圾回收,没有问题。
Java Hour 61 基础概念拾遗的更多相关文章
- Java并发(一):基础概念
对于Java并发,我也是属初学阶段,用的参考书是:"Java并发编程实战",写博时也参考了很多类似主题的博客,博主意在记录自己的学习路程,供网友讨论学习之用; 周末写的差不多了,今 ...
- java并发编程基础概念
本次内容主要讲进程和线程.CPU核心数和线程数.CPU时间片轮转机制.上下文切换,并行和并发的基本概念以及并发编程的好处和注意事项,为java并发编程打下扎实基础. 1.什么是进程和线程 1.1 进程 ...
- JAVA反射机制基础概念
反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠覆原来对java的理解. J ...
- Java 面试题基础概念收集
问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传递的是地 ...
- 编程语言十万个为什么之java web的基础概念
1.什么是JAVA Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由SunMicrosystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaSE, Ja ...
- Java 面试题基础概念收集(高级)
JVM垃圾回收: GC又分为 minor GC 和 Full GC (也称为 Major GC ).Java 堆内存分为新生代和老年代,新生代中又分为1个 Eden 区域 和两个 Survivor 区 ...
- Java并发(二):基础概念
并发编程的第二部分,先来谈谈发布(Publish)与逸出(Escape); 发布是指:对象能够在当前作用域之外的代码中使用,例如:将对象的引用传递到其他类的方法中,对象的引用保存在其他类可以访问的地方 ...
- Java反射之基础概念
0.实例准备 package com.blueStarWei.invoke; public class Student { private String name; public Student() ...
- Java面试题精选(一)基础概念和面向对象
-- 基础概念和面向对象 -- 全程将为大家剖析几大部分内容,由于学习经验有限,望大家谅解并接受宝贵的意见: 基础概念部分 ★★ : 常出现的高频率单词的区别理解(异常. ...
随机推荐
- 随时修改添加,thinkphp小知识
__SELF__代表自身路径, 谁访问它代表是谁, 区别在于有没有传值.传值的话self会带那个值 __ACTION__ 找操作方法所在的位置,区别在于有没有传值.传值的话action不会带那个值 _ ...
- javaweb学习总结(二十九)——EL表达式
一.EL表达式简介 EL 全名为Expression Language.EL主要作用: 1.获取数据 EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象.获取数 ...
- C# Socket大文件上传
public sealed class SocketData { private SocketData() { } public static SendFileMode SendFile(Socket ...
- Entity Framework 自动生成CodeFirst代码
前言 在前面的文章中我们提到Entity Framework的“Code First”模式也同样可以基于现有数据库进行开发.今天就让我们一起看一下使用Entity Framework Power To ...
- 最新 DEDECMS SQL 注入 0day
4月29日消息:国内安全研究团队“知道创宇”称截获到最新DEDECMS SQL注入0day,DEDECMS官网目前提供下载的最新版5.7也受影响,截止本告警发出时官方尚未给出补丁或解决方案,此漏洞利用 ...
- Unity运行时刻资源管理
原地址:http://www.cnblogs.com/88999660/archive/2013/04/03/2998157.html Unity运行时刻资源管理 ------------------ ...
- 【OpenStack】OpenStack系列17之OpenStack私有云设计一
[软件系统] 1.操作系统(Minimal最小化安装): CentOS-6.6-x86_64,CentOS 6最后一个版本,官方建议版本. 相对于6.5版本: 强化对 SCSI 设备的处理,有助应付某 ...
- order by 指定顺序 mysql
LOCATE(substr,str), LOCATE(substr,str,pos) 第一个语法返回字符串str第一次出现的子串SUBSTR的位置.第二个语法返回第一次出现在字符串str的子串SUBS ...
- Android ViewPager轮播图
Android客户端开发中很多时候需要用到轮播图的方式进行重点新闻的推送或者欢迎页面的制作,下面这个轮播图效果的Deamo来自互联网再经过修改而成. 1.布局文件activity_main.xml中添 ...
- shell脚本批量生成配置文件
如果管理的站点和服务器较多的情况下,每次修改配置文件都相当痛苦.因而想到了用shell脚本来批量生成配置文件和配置数据.下面这个脚本是为了批量生成nagios监控配置文件的一个shell脚本程序.其原 ...