• 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 可以实现该接口
    ( 如下图 )

    image
    Map  ( 一套方法 )
    key
    value

    例如 : 字典
    key : words
    value : word的定义
    通过 key 来查询 value

    HashMap ( class ) implements Map

    // 字典
    HashMap<String, String> dict = // Map<String, String> dict 一样,因为使用了 HashMap实现
        new HashMap<String, String>();

    // 电话本
    HashMap<String, Integer> phonebook =
        new HashMap<String, Integer>();

    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<String>

    功能设计 ArrayList<Song> sones = new ArrayList<Song>(); // 因为有些歌曲没有专集 HashMap<String, Album> 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中运行 <applet archive="NameSufer.jar"   code="NameSufer.java"   width="100" height="80"> </applet>

    Java 推荐图书

    <learning java> <java server program> <Java programing language> <Big Java>

  • 相关阅读:
    [pyqt4]mark
    EPC摘抄
    sockaddr struct 类型重定义
    linux编译警告 will be initialized after
    cout如何输出十六进制
    strcpy unsigned char
    c语言格式控制符
    c++字节数组转换为整型
    C++如何判断大小端
    C++中关于位域的概念
  • 原文地址:https://www.cnblogs.com/moveofgod/p/2872653.html
Copyright © 2020-2023  润新知