java 06_Java 06

/* video 18 */

score[0][0]  -> int 类型 比如

score[0]  表示第 0 行, -> int[] 这样,传递参数时,可以传递一行 ++ 这里的++是指下一行

score.length -> 行的长度 ( 包含多少个子数组 ) , 每一行都是单个数组

score[0].length -> 列的长度

数组 与 数组表 对比

首先 数组表

优点

- dynamic resizing

- other operation

缺点

- 效率低

- 语法操作复杂,例如定义等等,麻烦

- 在 java 5.0 之前没有该语法

注意:如果你的数组是 fixed size( 固定尺寸 ) , 就一定要用数组,而不要用数组表

调试 debugging

design - architect

coding - Engineer

testing - vandal( 破坏者 )

debugging - detect( 侦察 )

流程

design

development

debugging

deployment

向下如果出了问题,每次都要花比上一步多 10 倍的空间去确认。

调试程序经验

bad values ( 坏值 )

faulty logic ( 错误的逻辑 )

unwarranted assumption ( 没有根据的假设, 例如我以为火箭的单位是米,怎么不早告诉我是英尺 )

一定要冷静

方法

- println ( 将要确认的值打印出来, 或者在方法开始和结束时加上 println, 看看是不是这个函数出了问题 )

-unit test ( 将程序分成几个单元,每个单元单独调试 )

/* video 19 */

Interface一整套方法

public class className implements InterfaceName

extends 与 Interface 的区别是

extends 有着明显的层次关系

而 Interface 是一些方法的结合,多个对象可以调用,但是没有明显的继承关系

例如 Gobject 这个类里边,GRect 继承了 GObject 类,那么还有 GResize 接口,GRect 可以实现该接口

( 如下图 )

79307d44226ca26d294b61eafe453dff.png

Map  ( 一套方法 )

key

value

例如 : 字典

key : words

value : word的定义

通过 key 来查询 value

HashMap ( class ) implements Map

// 字典

HashMap dict = // Map dict 一样,因为使用了 HashMap实现

new HashMap();

// 电话本

HashMap phonebook =

new HashMap();

dict.put(key, value);

dict.get(key);

java 5.0 以后版本,自动包装, 123 这是一个 int 标量类型,会自动封包成 Integer 类 类型。

Integer mMm = phonebook.get("Name");

phonebook.remove(key);

phonebook.containskey(key);

phonebook.size();

Iterator ( 迭代器 )

主要的作用是用来遍历序列, 例如 ArrayList 序列或者 HashMap 等等

// 另一种 for 循环

for (String name: phonebook.keySet()) {

println(name);    // 将所有的电话号打印出来

}

HashMap 与 ArrayList 区别 ?

Hashmap是一个Map接口的具体实现,可以支持键值的映射( 可以通过 key ,  很快找到对应内容 )

ArrayList是一个List接口的具体实现,只是一个链表 ( 没有顺序 )

打包

如果你想要的程序被别人利用或者执行, 你需要将程序打包, 可以使用 eclipse -> export -> jar file 等等内容, 按照提示步骤来进行打包.

/* video 24 */

管理数据是计算机的主要应用,目前我做的也是这方面内容

好的软件工程原则建立 相关领域名词 -> class         动词 -> method 考虑使用那种数据结构来保存数据 Design ( 问自己的问题 )  - collection of objects ( 用什么 collection ) 考虑该对象提供的方法是否可行  - unique 例子 线上音乐商店 Fly Tunes 名词 sones   Albums (专集)

class Sone  name String  bound String  price double  unique identifier 什么变量变化,什么不变化,不变化的内容只有 get 没有 set

class Album  name String bound String list of sones ArrayList

功能设计 ArrayList sones = new ArrayList(); // 因为有些歌曲没有专集 HashMap al = new ...    // 歌曲名和专集

有笔 和 纸 画出结构十分有用 大型软件的关键是,堆内存中的对象,一个对象只保存一次,这样,在程序中虽然有很多该对象的 引用,但是当我们修改该对象时,就能做到一改全改

/* video 25 */

社交网络,-- facebook

并发

public class MyClass implements Runnable {  public MyClass() {     }  public void run() {    } }   线程之间可以互动 多个线程保存了堆的引用,所以线程的运行就会改变该堆的情况

多线程程序很难控制,方框赛跑谁是 winner , 很难控制

/* video 26 */

介绍 java 标准库

- main - jar : -> classes ( complied ) 生成 jar, 在 eclipse 中点export , 然后选择 java->jar, 然后只要将 default 的内容打包就可以了, 别的还有一些管理方面的内容,不需要打包。jar中可以包含了 main方法。 管理 jar manifest 文件 Class-Path: acm.jar nameSuffer.jar

然后双击 jar 就可以了,不需要 eclipse, 直接可以运行 jar文件,还有data文件,放在一个文件夹里就可以运行了 别人的机器里必须要安装有JAVA运行环境,即 JRE 在 html中运行

Java 推荐图书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值