循环遍历器

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 基础概念拾遗的更多相关文章

  1. JAVA反射机制基础概念

    反射机制:所谓的反射机制就是java语言在运行时拥有一项自观的能力.通过这种能力可以彻底的了解自身的情况为下一步的动作做准备.下面具体介绍一下java的反射机制.这里你将颠覆原来对java的理解. J ...

  2. Java面试题精选(一)基础概念和面向对象

    --   基础概念和面向对象   --      全程将为大家剖析几大部分内容,由于学习经验有限,望大家谅解并接受宝贵的意见: 基础概念部分     ★★   : 常出现的高频率单词的区别理解(异常. ...

  3. Jmeter基础之---jmeter基础概念

    Jmeter基础之---jmeter基础概念 JMeter 介绍: 一个非常优秀的开源的性能测试工具. 优点:你用着用着就会发现它的重多优点,当然不足点也会呈现出来. JMeter 介绍: 一个非常优 ...

  4. 快速入门系列--WCF--01基础概念

    转眼微软的WCF已走过十个年头,它是微软通信框架的集大成者,将之前微软所有的通信框架进行了整合,提供了统一的应用方式.记得从自己最开始做MFC时,就使用过Named Pipe命名管道,之后做Winfo ...

  5. Java多线程系列--“基础篇”11之 生产消费者问题

    概要 本章,会对“生产/消费者问题”进行讨论.涉及到的内容包括:1. 生产/消费者模型2. 生产/消费者实现 转载请注明出处:http://www.cnblogs.com/skywang12345/p ...

  6. Java多线程系列--“基础篇”04之 synchronized关键字

    概要 本章,会对synchronized关键字进行介绍.涉及到的内容包括:1. synchronized原理2. synchronized基本规则3. synchronized方法 和 synchro ...

  7. Java多线程系列--“基础篇”02之 常用的实现多线程的两种方式

    概要 本章,我们学习“常用的实现多线程的2种方式”:Thread 和 Runnable.之所以说是常用的,是因为通过还可以通过java.util.concurrent包中的线程池来实现多线程.关于线程 ...

  8. Java多线程系列--“基础篇”03之 Thread中start()和run()的区别

    概要 Thread类包含start()和run()方法,它们的区别是什么?本章将对此作出解答.本章内容包括:start() 和 run()的区别说明start() 和 run()的区别示例start( ...

  9. Java多线程系列--“基础篇”05之 线程等待与唤醒

    概要 本章,会对线程等待/唤醒方法进行介绍.涉及到的内容包括:1. wait(), notify(), notifyAll()等方法介绍2. wait()和notify()3. wait(long t ...

随机推荐

  1. DDR控制

    先看下micron公司对DDR3命名的规则: 在设置xilinx ISE中的DDR时 在选择芯片时,不清楚该怎么选择. 请教汤工,给出的答案是Speed等级高的可以兼容等级低的芯片,个在实验之中用的是 ...

  2. NYOJ 737---石子归并(GarsiaWachs算法)

    原题链接 描述    有N堆石子排成一排,每堆石子有一定的数量.现要将N堆石子并成为一堆.合并的过程只能每次将相邻的两堆石子堆成一堆,每次合并花费的代价为这两堆石子的和,经过N-1次合并后成为一堆.求 ...

  3. Java--剑指offer(5)

    21.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假设压入栈的所有数字均不相等.例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对 ...

  4. 关于ebox

         看了介绍,觉得挺不错的东西,希望能够一路走下去       老话题STM32编程,新思路,一样是编程,味道却大有不同.这就是STM32之eBox编程.让你提议不一样的编程,让开发快到你意想不 ...

  5. 为python-sproto添加map支持

    上个月太忙了,做完这个修改还没写博客,现在补一下.. 之前使用protobuf做协议打包的时候,经常会有个痛点,没法用具体数据的值作为key来索引数据.比如现在客户端上传了造兵协议,协议大概长这样: ...

  6. php 在函数定义变量的时候,变量前加了 @ 符号是什么意思

    今天在看到一段代码,如下 <?php $test=@'kdksf?cc'; 加上@ 是 就可以不用\来表示转义字符了

  7. (转)iOS动画Core Animation

    文章转载:http://blog.sina.com.cn/s/blog_7b9d64af0101b8nh.html 在iOS中动画实现技术主要是:Core Animation. Core Animat ...

  8. 使用Putty连接VirtualBox的Ubuntu

    从vbox中安装了ubuntu server,然后用ssh连过去,发现有一个错误:server unexpectedly closed network connection.猛然发现,ssh没有安装. ...

  9. 基于Processing的数据可视化

    虽然数据可视化领域有很多成熟.界面友好.功能强大的软件产品(例如Tableau.VIDI.NodeXL等),但是借助Processing我们可以基于Java语言框架进行丰富多元的可视化编程,熟悉了Pr ...

  10. Math对象

    <script type="text/javascript"> /* Math对象常用的方法: ceil 向上取整 floor() 向下取整 random() 随机数方 ...