第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. cx_oracle访问处理oracle中文乱码问题

    cx_oracle访问处理oracle中文乱码问题 问题描述 使用docker打包了centos镜像,编码为gbk,随后访问oracle出现了很多乱码.其原因自然是因为编码不一致,服务器为zhs16g ...

  2. Linux系统盘扩容-物理机非虚拟机

    # Linux系统盘扩容 ## 了解磁盘分区情况 - `blkid` 查看分区情况- `fdisk -l` 分区表 ## 系统挂载分区 - `/etc/fstab` 启动挂载分区情况 ## 双系统下分 ...

  3. Guava Cache用法介绍<转>

    Guava Cache是在内存中缓存数据,相比较于数据库或redis存储,访问内存中的数据会更加高效.Guava官网介绍,下面的这几种情况可以考虑使用Guava Cache: 愿意消耗一些内存空间来提 ...

  4. Python3字典

  5. 02Hadoop二次排序2

    案例: 数据: 邮编   |     日期     |金额 ILMN,2013-12-05,97.65GOOD,2013-12-09,1078.14IBM,2013-12-09,177.46ILMN, ...

  6. 第四百一十六节,Tensorflow简介与安装

    第四百一十六节,Tensorflow简介与安装 TensorFlow是什么 Tensorflow是一个Google开发的第二代机器学习系统,克服了第一代系统DistBelief仅能开发神经网络算法.难 ...

  7. Houdini技术体系 基础管线(三) :UE4以选择区域的方式对地形做生成和更新 上篇

    背景     前一节里,解决了Houdini地形无缝导入到UE4的流程问题.但这种方法也有它的局限性,在实际游戏项目里,LA和LD还是偏向在游戏引擎编辑器里工作,他们的一些设计也会影响到地形的信息,那 ...

  8. k8s的使用

    . 查看 kubectl 的状态 kubectl version . 查看集群信息 kubectl cluster-info . 查看节点信息 kubectl get nodes . 创建一个发布 k ...

  9. 搭建Airflow数据流调度器

    服务器使用的是centos系统,需要安装好pip和setuptools,同时注意更新安装的版本 接下来参考安装好Airflow Airflow 1.8 工作流平台搭建 http://blog.csdn ...

  10. 24小时学通Linux内核之电源开和关时都发生了什么

    说实话感觉自己快写不下去了,其一是有些勉强跟不上来,其二是感觉自己越写越差,刚开始可能是新鲜感以及很多读者的鼓励,现在就是想快点完成自己制定的任务,不过总有几个读者给自己鼓励,很欣慰的事情,不多感慨了 ...