第2章 基本数据类型与数组


2.1 标识符与关键字

1、标识符

  • 标识符由字母、下划线、美元符号、数字组成
  • 标识符第一个字符不能是数字字符
  • 标识符不能是关键字或者true、false、null等有其他意义的字符

2、Unicode字符集

Java语言使用Unicode字符集,也就是说Java中可以直接把汉语作为变量名,但是不建议这么做

2.2 基本数据类型

可以大致分为四种:

  • 逻辑类型:boolean 常量:true,false

  • 整数类型:int 占4个字节内存, byte 占1个字节内存, short 占2个字符内存, long 占8个字节内存,常量用后缀‘L’表示

    注:Java没有无符号的byte,short,int和long

  • 字符类型:分配2个字节内存,特别:可以用Unicode表中排序位置的十六进制转义,如'\u0041'表示A。

  • 浮点类型:float型保留8位有效数字,分配4个字节内存,常量用后缀'f'或者'F'修饰

    ​ double型保留16位有效数字,分配8个字节内存,常量用后缀'd'或'D'修饰,也可无

2.3 类型转换运算

精度从低到高排列:
byte short char int long float double
从级别低的赋值到级别高的变量时,会自动转换。
反之会报错,这点不同于C语言。可以使用强转。

2.4 输入、输出数据

输入要用到Scanner类,以下是Scanner类的基本信息

Scanner对象的构造

Scanner类包含的常用方法

还有hasNext()等方法可以判断是否还有对应类型的输入
所以输入的基本步骤是:

1、import java.util.Scanner;引入Scanner类

2、Scanner reader = new Scanner(System.in);创建Scanner对象

3、double x = reader.nextDouble();使用对应的数据类型来接收(在此之前可以用hasNextDouble()判断下一个值是否是double)

Scanner()中的System.in是System类的字段,具体如下

要输出的话就用System.out.println或者System.out.print,前者相当于调用print()后再通过写入行分隔符字符串终止当前行。行分隔符字符串由系统属性 line.separator 定义,不一定是单个换行符 ('\n')。但是有点搞不清楚这个System、out、println到底是什么关系,刚开始学java,对一些概念还不清楚,先大概看看吧。

另外好奇为什么Scanner要引入但是System不需要,原来是System在lang包下,而lang包是默认导入的。
另外还有printf(),使用方法和C语言中的printf格式控制差不多

2.5 数组

  • 声明数组
    数组的元素类型 [] 数组名
    C/C++的声明也可以,但是不建议
    注: 不可以在[]中指定数组元素个数

  • 创建数组
    数组名 = new 元素类型[数组大小]
    可以和声明一起完成
    元素类型 [] 数组名 = new 元素类型[数组大小]

  • 数组的初始化
    创建数组后,系统会给数组的每个元素一个默认的值
    一维数组如元素类型 [] 数组名 = {data, data...}
    二维数组如元素类型 [][] 数组名 = {{data, data...},{data, data...},...}

  • 数组的引用
    数组属于引用性变量,这是我第一次接触到这个名词,第一感觉有点像C语言的指针,于是去搜了一下这两者的相同点和区别,比如说JAVA 引用和C语言指针的区别,又想起《流畅的Python》中提到,不再把变量看成盒子,而看成标签。这个问题还是以后再慢慢研究。

参考资料

《Java程序设计》第二周学习记录(1)的更多相关文章

  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. 《Java程序设计》第二周学习记录(2)

    目录 3.1 运算符与表达式 3.3 if条件分支语句 3.7 for语句与数组 参考资料 3.1 运算符与表达式 和C语言基本上没有区别,要注意的是关系运算符的输出结果是bool型变量 特别要注意算 ...

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

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

随机推荐

  1. Scratch 可能能帮你找到学习编程的初心

    Scratch 是MIT 出品的一款少儿编程软件,基于Adobe Air开发,这个运行环境在如今已经显得有些过时,但只要这个软件有用,软件本身就不会过时. 编程的本质大致是调用计算机的指令编写一系列任 ...

  2. HashMap中capacity、loadFactor、threshold、size等概念的解释<转>

    最近在看HashMap的源码,有很多概念都很模糊,今天写了一个测试例子,加深对这几个概念的理解,并演示了扩容及树化的过程(见下篇博文:). 注:本文基于JDK 1.8  HashMap的结构 约定 约 ...

  3. OE1、OE2、ON1、ON2路由有什么区别?

    OSPF的路由类型: 1 .O    域内路由 2 .O/A  域间路由 3 .OE1  域外路由,会累加METRIC值(默认20) 4 .OE2  域外路由,不累加METRIC值(默认20),由外部 ...

  4. DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流。

    UDP编程: DatagramSocket(邮递员):对应数据报的Socket概念,不需要创建两个socket,不可使用输入输出流. DatagramPacket(信件):数据包,是UDP下进行传输数 ...

  5. 我们在学习JDBC的时候会过度到J2EE。

    我们在学习JDBC的时候会过度到J2EE.   在Swing的组件中,基本上都是在AWT组件的名称前面加“J”. 一般情况下,除了Choise等组件: import javax.swing.*;好要加 ...

  6. java生成txt文件,读txt文件

    1.方法1 public static void main(String[] args) { try { FileWriter fileWriter = new FileWriter("c: ...

  7. Windows下Codeblocks调试Cocos2d-x项目体验(一次失败的体验)

    很久之前的一篇文章有介绍过在Ubuntu下安装Cocos2d-x3.11并使用Codeblock调试Cocos2d-x程序:http://www.cnblogs.com/moonlightpoet/p ...

  8. 三维计算机视觉 — 中层次视觉 — Point Pair Feature

    机器人视觉中有一项重要人物就是从场景中提取物体的位置,姿态.图像处理算法借助Deep Learning 的东风已经在图像的物体标记领域耍的飞起了.而从三维场景中提取物体还有待研究.目前已有的思路是先提 ...

  9. Spring的Log4J配置器Log4jWebConfigurer介绍

    1. Logj4简介 Log4j是Apache大旗下的一个子项目,它可以用来重定向应用日志文件的输出流,无论我们想将日志文件输出到控制台还是网络还是其他地方,都可以通过logj4来配置,如果我们的应用 ...

  10. cc攻击和ddos攻击

    DoS攻击.CC攻击的攻击方式和防御方法 DDoS介绍 DDoS是英文Distributed Denial of Service的缩写,意即“分布式拒绝服务”,那么什么又是拒绝服务(Denial of ...