zoukankan      html  css  js  c++  java
  • 20155213 2016-2017-2 《Java程序设计》第二周学习总结

    20155213 2016-2017-2 《Java程序设计》第二周学习总结

    教材学习内容总结

    关于Unicode和UTF

    很抱歉,没能读完娄老师推荐的网址,关于Unicode和UTF的介绍,里面全是繁体字Unicode和UTF,我继而求助了百度百科,下面是百度上的解释:

    • Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式公布。
    • UTF-8(8-bit Unicode TransformationFormat)是一种针对Unicode的可变长度字符编码,又称万国码。由KenThompson于1992年创建。现在已经标准化为RFC3629。UTF-8用1到4个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
    • UTF-16是Unicode字符编码五层次模型的第三层:字符编码表(CharacterEncodingForm,也称为"storageformat")的一种实现方式。即把Unicode字符集的抽象码位映射为16位长的整数(即码元)的序列,用于数据存储或传递。Unicode字符的码位,需要1个或者2个16位长的码元来表示,因此这是一个变长表示。

    就我的理解,Unicode是一种标准,一种规范计算机上字符的书写与二进制编码转换的标准,共有17组编排,0x0000 至 0x10FFFF
    基本涵盖了世界上所有语言字符和特殊字符,之后的UTF-8,UTF-16都是由此延伸出来的编码方案,其中UTF是有1个字节到4个字节来编码字符,咱们网站上的字符形式就是那样的,凡是有过编写网站经历的,都在里面写过<meta charset="UTF-8"/>而UTF-16则是一律以二字节存储,特别的java用的是Unicode编码,而JVM用的是UTF-16编码。

    java语法知识与C语言基本语法知识对比

    在还没涉及到类和对象的时候,java语法和C语言语法大同小异

    java语法 C语言语法
    输入 输入很复杂,其中简单的从键盘上输入一个字符System.in.read() scanf()基本上包罗了所有形式输入
    输出 System.out.print() printf()
    输出连接符 “+”号 “,”或者没有
    定义常量 final double PI=3.14 可以预定义#define PI 3.14也可以const double PI=3.14

    教材学习中的问题和解决过程

    • 问题:怎么比较两个float型数?
    • 答:和C语言里相似,因为float型只定义到小数点后六位,于是对于两个float数m、n和boolean数BB=(m-n>=1e-6)如果B=1则m>=n,否则m<n。
    • 问题:java语言怎么从键盘输入?
    • 答:这是一个很复杂的问题,不像C语言,片言只语可以解释,这就已经和java里的类和对象扯上关系了。咱们可以从这个网站上java类简单学习一下类的概念,不过挺多的,简而言之就是先创建一个类,在用这个类在main路径上定义个对象,了解了这些后,在看下java输入中的三个输入方式,这样就基本上学好了C语言里一个scanf()函数就能完成的功能。

    代码调试中的问题和解决过程

    对于初期的代码学习,其实也就是逐字逐词输入,只有要注意的地方:

    • 文件名要和类的名字保持一致;
    • 如果一个main路径的类,需要调用已存在的类,为了方便要在代码前加上import ···,以减少后续代码的重复输入某词,如果需要调用自己创建的类,则需要保证类的命名不能重复已存在的任何类;
    • 类和一般操作之间要有.间隔;
    • 对于private类里面的变量,需要里面的操作才能赋值,类外无法对其进行赋值;
    • 其他需要注意的点和C语言差不多。

    代码托管

    • 代码提交过程截图

    • 代码量截图:

    上周考试错题总结

    卷一,第十六题

    • Linux Bash中,查找home目录中昨天创建的文件的命令是(find ~ -ctime 1),我重新查找学习了find指令,以及选项ctime.
    • amin n 查找系统中最后N分钟访问的文件
    • atime n 查找系统中最后nx24小时访问的文件
    • cmin n 查找系统中最后N分钟被改变文件状态的文件
    • ctime n 查找系统中最后nx24小时被改变文件状态的文件
    • mmin n 查找系统中最后N分钟被改变文件数据的文件
    • mtime n 查找系统中最后n*24小时被改变文件数据的文件

    卷二,第三题

    • 德雷福斯技能学习模型把技能获取分为五个阶段:新手、高级新手、胜任者、精通者、专家,其中( 新手 )不能离开详细的指令。
    • 这五个阶段,新手需要大量的指令,而大部分人都处在胜任者。

    卷二,第二十八题

    • git log 命令来查看(提交历史)。
    • 之后我有查找了写关于git的相关指令
    git指令 用途
    git clone 以gitreadonly方式克隆到本地,只可以读
    git pull 获取并合并内容到本地
    git add 添加文件到本地仓库
    git rm 本地倒库内删除
    git commit -m "first commit" 提交到本地库并备注,此时变更仍在本地
    git commit -a 自动更新变化的文件,a可以理解为auto
    git remote add xxx git@github.com:xxx/xxx.git 增加一个远程服务器的别名
    git remote rm xxx 删除远程版本库的别名
    git push -u remotename master 将本地文件提交到Github的remoname版本库中。此时才更新了本地变更到github服务上。

    其他(感悟、思考等,可选)

    学习是一个积累的过程,是一个循序渐进的过程,而实践更需要有足够的毅力和勇气去试错,去长记性。每一个字符,每一行代码都是进步,即便是删除的那部分。我目前已经实现两位数的加减乘除,从带着C语言的余味到品尝到java的新味,确实很不赖,下面是我这一个星期的过程与成果:

    public class Number{
       public static void main(String[] args){
         System.out.println("a="+3+",b="+4);
    }
    }
    
    import java.io.BufferedReader;    
    import java.io.IOException;    
    import java.io.InputStreamReader;    
    import java.util.Scanner;
    class Two{
       int fir;
       int sec;
       Two(int a,int b){
      fir=a;
      sec=b;
      }
    int add(){
         return fir+sec;
    }
    int sub(){
         return fir-sec;
    }
    int mul(){
         return fir*sec;
    }
    int div(){
        return fir/sec;
    }
    }
    public class Caculate{
       public static void main(String[] args){
        Two mytwo=new Two(12,4);
        int result=mytwo.add();
        try{System.out.println("Please input '+' '-' '*' '/'");
        System.out.print("Enter a Char:");   
          char c = (char)System.in.read();
    
    
       if(c=='+')  System.out.println("12+4="+result);  
       if(c=='-')  System.out.println("12-4="+mytwo.sub());
        if(c=='*') System.out.println("12*4="+mytwo.mul());
        if(c=='/') System.out.println("12/4="+mytwo.div());}
    catch(IOException e){   
          e.printStackTrace();   
        }
    }
    }
    
    import java.io.BufferedReader;    
    import java.io.IOException;    
    import java.io.InputStreamReader;    
    import java.util.Scanner;
    class Two1{
       int fir;
       int sec;
       Two1(){
    Scanner sc=new Scanner(System.in);
      System.out.print("Enter a Number:");
         fir = sc.nextInt();
        System.out.print("Enter another Number:");
         sec = sc.nextInt();   
    }
    int add(){
         return fir+sec;
    }
    int sub(){
         return fir-sec;
    }
    int mul(){
         return fir*sec;
    }
    int div(){
        return fir/sec;
    }
    }
    public class Caculate01{
       public static void main(String[] args){
        Two1 mytwo1=new Two1();
        int result=mytwo1.add();
        try{System.out.println("Please input '+' '-' '*' '/'");
        System.out.print("Enter a Char:");   
          char c = (char)System.in.read();
       if(c=='+')  System.out.println(mytwo1.fir+"+"+mytwo1.sec+"="+result);  
       if(c=='-')  System.out.println(mytwo1.fir+"-"+mytwo1.sec+"="+mytwo1.sub());
        if(c=='*') System.out.println(mytwo1.fir+"*"+mytwo1.sec+"="+mytwo1.mul());
        if(c=='/') System.out.println(mytwo1.fir+"/"+mytwo1.sec+"="+mytwo1.div());}
    catch(IOException e){   
          e.printStackTrace();   
        }
    }
    }
    

    下面是用用switch语句优化后的:

    import java.io.BufferedReader;    
    import java.io.IOException;    
    import java.io.InputStreamReader;    
    import java.util.Scanner;
    class Two1{
       int fir;
       int sec;
       Two1(){
    Scanner sc=new Scanner(System.in);
      System.out.print("Enter a Number:");
         fir = sc.nextInt();
        System.out.print("Enter another Number:");
         sec = sc.nextInt();   
    }
    int add(){
         return fir+sec;
    }
    int sub(){
         return fir-sec;
    }
    int mul(){
         return fir*sec;
    }
    int div(){
        return fir/sec;
    }
    }
    public class Caculate01{
       public static void main(String[] args){
        Two1 mytwo1=new Two1();
        int result=mytwo1.add();
        try{System.out.println("Please input '+' '-' '*' '/'");
        System.out.print("Enter a Char:");   
          char c = (char)System.in.read();
          switch(c){
       case '+':  System.out.println(mytwo1.fir+"+"+mytwo1.sec+"="+result);  break;
       case '-' : System.out.println(mytwo1.fir+"-"+mytwo1.sec+"="+mytwo1.sub());break;
        case '*': System.out.println(mytwo1.fir+"*"+mytwo1.sec+"="+mytwo1.mul());break;
        case '/': System.out.println(mytwo1.fir+"/"+mytwo1.sec+"="+mytwo1.div());break;
        default :
        System.out.println("Error input!");}
        }
    catch(IOException e){   
          e.printStackTrace();   
        }
    }
    }
    

    最终能达到的效果是:

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第二周 98/100 1/1 30/38 已经对java的编程有个大体认识,以及对类和对象有了基本的认识

    参考资料

  • 相关阅读:
    单词统计
    学习进度_第十周
    学习进度_第九周
    典型用户、场景分析
    一维数组4.25
    《构建之法》阅读笔记03
    学习进度_第八周
    《构建之法》阅读笔记02
    夏壹队——nabcd
    个人作业阶段二 4
  • 原文地址:https://www.cnblogs.com/elevator/p/6502919.html
Copyright © 2011-2022 走看看