java学习小记一
小记一
1,List,主要包括ArrayList和LinkedList,这个list很像数据结构里面的线性表,线性表主要的两种实现方法一个就是数组,另一个就是链接表。ArrayList主要的方法包括add(),跟get().LinkedList主要的方法是addFirst(),getFirst(),addLast(),getLast().
2,Set 顾名思义,集合的意思,集合有个特征就是不存在重复的元素,这里也是,对于某一个实例(Object),只能存在一个引用在Set里。集合主要的操作也是add(),remove(),检查某个object是否在集合里用contains()方法。
3,Map 可以理解为映射,从Key 到Value的映射,一对一,keySet()得到Key的集合,values()得到Value的集合,常用方法是add(Object Key,Object Value),Value getKey(Obect Key),Map一般用HashMap,跟LinkerMap,前者速度快,后者可以保证存储顺序按照输入顺序。还有个TreeMap,据说可以返回子树,没测试。Map主要强大在可以用a Object来associate with another object.对于Array来说,是下标(index)来对应每一个对象,而Map可以用对象来对应另外一个对象,比如人对应自己养的宠物,二者都是对象,用Array的话,可以用2XN数组来模拟,但是用Map可以直接办到,而且可以办到一个人对应多只宠物。eg,Map<Person,List<Pets>>
4,对于以上的Collection如果声明时没有规定特定的类型,理论上可以放入任意对象,可是当取出时需要强制类型转化成对应的类型才能使用.
5,其实这些容器存放的都是reference of objects.
6,对于Collection,都可以使用iterator(),有迭代器的意思,就是按照顺序一个一个读出来,主要方法是hasNext(),和Next(),取出来的Object需要cast成对应的类型才可以使用。Map可以抽取出Key集合跟value集合,然后再使用iterator().
7,Array很强大,但是需要事先规定固定的大小及类型。而对于以上的Containers不需要,需要的是取出用时需要转化为对应的类型。
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
JAVA核心技术观后感
这周大家都基本上买了一本《JAVA核心技术》来看,虽然我的书下周才能拿到,但是我还是翻了下别人的,大致了解了一下里面的内容。以下就是我粗糙的整理。
JAVA并不只是一种语言,而是一个完整的平台,有一个庞大的库,其中包含很多可以重用的代码和一个提供诸如安全性,跨操作系统的可移 ......
1, 保证线程安全的三种方法
:
a, 不要跨线程访问共享变量
b, 使共享变量是
final类型的
c, 将共享变量的操作加上同步
2, 一开始就将类设计成线程安全的
, 比在后期重新修复它
,更容易
.
3, 编写多线程程序
, 首先
保证它是正确的
, 其次再考虑性能
......
第一章 概述
版权声明
此文档由王健旭(http://www.wangjianxu.com ginger547@gmail.com )负责整理总结,并对该文档保有有限责任权利,此文档只能用于学习以及教学,请勿用作商业用途,因此而
产生的法律问题,本人一概不负责。 本 ......
正式开始Java了.
先是配置Java
java_home path classpath(1.5以上版本可以不用配置classpath了)
不过杯具的是.一开始理解错了.以为classpath的".;"--当前目录是指javac X:\aa.java的哪个X:目录..然后java aa就不用指定了..
弄了好久都不是这样的..还以为是win 7的原因..Orz
Java配置好了.该选文本编辑器了..
同学叫 ......