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的编程有个大体认识,以及对类和对象有了基本的认识

参考资料

20155213 2016-2017-2 《Java程序设计》第二周学习总结的更多相关文章

  1. 20145304 刘钦令 Java程序设计第二周学习总结

    20145304 <Java程序设计>第2周学习总结 教材学习内容总结 java可区分基本类型和类类型(即参考类型)两大类型系统. 基本类型主要可区分为整数.字节.浮点数.字符与布尔. 整 ...

  2. 201521123063 JAVA程序设计 第二周学习总结

    1.本周学习重点(2.27-3.5) java中的数组 以二维数组为例,数组名为scores,则 (1)先声明数组 int[][] scores;或int scores[][];或int[] scor ...

  3. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第二周学习总结

    丁宣元 <面向对象程序设计(java)>第二周学习总结 正文开头 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在 ...

  5. 201521044152<java程序设计>第一周学习总结

    本周学习总结 java开发时间虽然很短,但是发展迅速,已成为现在非常流行的一门语言,很开心能有幸学习java.第一周学习了java的平台,运行环境jdk以及jrt等等新名词,还了解了eclipse的基 ...

  6. 20145304 刘钦令 Java程序设计第一周学习总结

    20145304<Java程序设计>第1周学习总结 教材学习内容总结 1995年5月23日,是公认的Java的诞生日,Java正式由Oak改名为Java. Java的三大平台是:Java ...

  7. 201621123007 Java程序设计第一周 学习总结

    第一周-Java基本概念 201621123007 <Java程序设计> 第一周学习总结 1. 本周学习总结 java是面向对象的一类语言,三大特征:封装性,继承性,多态性. jdk jr ...

  8. 201871010121 王方 《面向对象程序设计(java)》 第二周学习总结

    这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/11475 ...

  9. 杨其菊201771010134《面向对象程序设计Java》第二周学习总结

    第三章 Java基本程序设计结构 第一部分:(理论知识部分) 本章主要学习:基本内容:数据类型:变量:运算符:类型转换,字符串,输入输出,控制流程,大数值以及数组. 1.基本概念: 1)标识符:由字母 ...

  10. 201777010217-金云馨《面向对象程序设计(Java)》第二周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

随机推荐

  1. December 17th 2016 Week 51st Saturday

    Great minds have purpose, others only have wishes. 杰出的人有着目标,其他人只拥有愿望. Are you clear about the differ ...

  2. centos6.4 minimal 安装kvm

    操作系统是网易源下载的centos 64位的minimal安装包,很多工具都没有,像gcc make wget which where 等统统没有,好在有yum 这里为了简单起见直接用yum安装kvm ...

  3. python面向对象之类成员

    面向对象编程: OOP编程是利用类和对象来创建各种模型来实现对真实世界的描述,使用面向对象编程的原因一方面是因为它可以使程序的维护和扩展变得简单,并可以大大提高程序开发效率.另外,基于面向对象的程序可 ...

  4. yarn-site.xml

    要保证spark on yarn的稳定性,避免报错,就必须保证正确的配置,尤其是yarn-site.xml. 首先来理解一下yarn-site.xml各个参数的意义(引自董的博客) 注:下面<v ...

  5. poj3718 Facer's Chocolate Dream

    题目链接 正解:组合数+$dp$. 今天考试的题,考试的时候感觉自己有点脑残过头了.. 似乎发现了所有$1$其实都是一样的,然后不知道怎么强制每种物品只选一个.. 然后就写了一个所有物品可以选任意个的 ...

  6. servlet的生命周期详解

    一.servlet生命周期原理解析 1.Servlet生命周期分为三个阶段: (1)初始化阶段  调用init()方法 (2)响应客户请求阶段 调用service()方法 (3)终止阶段 调用dest ...

  7. mean函数一个神代码

    cs231n上的一个代码,能求出准确率: print 'accuracy: %f' % ( np.mean(Yte_predict == Yte) ) >>> a = np.arra ...

  8. 利用n 升级工具升级Node.js版本及在mac环境下的坑

    一.利用n 升级Node.js 最近在用NPM安装一个nodejs工具时发现,我的nodejs的版本有些旧了.这不是大问题,只要升级就可以了,当然,重新从nodejs.org最新版本是一种方法,但我想 ...

  9. UIWebView 获取网页标题

    - (void)webViewDidFinishLoad:(UIWebView *)webView { NSString *urlString = webView.request.URL.absolu ...

  10. js获取今天,明天,本周五,下周五日期的函数

    代码比较简单,随便写写 /** * a连接快速选择日期函数 */ function timeChooseSimple(key, me) { //today,tomorrow,thisWeek,next ...