Java数据类型(primitive)原始数据类型
1.小心别溢出来。
要确保变量能存下来所保存的值。
你无法用小杯子装大值。好吧,其实可以,但是会损失某些信息,也就是所说的溢位。当判断到所使用的容器不足以装载时,编译器会试着防止珍重情况发生。举例来说,你无法使用像下面这样的把int大小的东西装进byte的容器中:
int x = 24;
byte b = x; //不行。
你可以用以下几种方式来给变量赋值:
1.在等号后面直接打出(x = 12,isGood = true)
2.指派其他变量的值(x = y)
3.上述两种方式的组合。(x = y + 43)。
下面粗体字部分是直接打出值的例子:
int size = 32; int 类型的32,名称为size
char initial = ‘j’; char类型的'j',名称为initial
int y = x + 456; 名称为y的int类型变量,其值为x与456相加运算的结果
避开关键字:(keyword)!
你已经知道变量需要名称和类型。
你已经知道什么是primitive主数据类型。
boolean byte char double float int long short
public private protected abstract final native static strictfp
sybchronized transient volatile if else do while switch case default for break continue assert
class extends implements import instanceof interface new package super this catch finally try throw throws
return void const goto enum 这些是Java的保留字,如果你把它们用在名称上面,编译器会列出混乱的结果。
二、对象引用
控制Dog对象 你已经知道要如何声明primitive主数据类型并赋值给它。但非primitive主数据类型的变量又该如何处理呢?换句话说,对象要怎么处理呢?
1.引用变量不知道大小(根据Java虚拟机有关。);
2.引用变量都具有相同的大小,而不管它实际上所引用的对象大小。
3.不可以对引用变量进行运算。
数组犹如杯架
1.声明一个int数组变量。数组变量是数组对象的遥控器。
int[] nums;
2.创建大小为7的数组,并将它赋值给之前声明为int[] 的变量nums。
nums = new int[7];
3.赋予int数组的每一个元素一个int值。要记得在int数组中的每个元素皆为int类型的变量。
数组也是对象
Java的标准函数库包含了许多复杂的数据结构,比如map、tree、和set(见附录B),但如果需要快速、有序、有效率地排列元素时,数组是不错的选择。数组能够让你使用位置索引来快速、随机地存取其中的元素。
在上面的图中有一项要注意的:数组是个对象,不管里面放的是不是primitive主数据类型。
无论被声明来承载的是primitive主数据类型或对象引用,数组永远是对象。但你可以声明出可以装载primitive主数据类型值的数组。换句话说,数组对象可以有primitive主数据类型的元素,但数组本身绝对不会是primitive主数据类型。不管数组带有什么,它一定是对象!
1.Dog [] = pets;
2.pets = new Dog[7];
3.pets[0] = new Dog();
pets[1] = new Dog();
pets[2] = new Dog();
Dog[] myDogs =new Dog[3];
myDogs[0] = new Dog();
myDogs[1] = new Dog();
myDogs[2] = new Dog();
myDogs[0].name = "Fido";
myDogs[0].bark();
此处的说明还未用到封装的概念,我们会在第4章中加以讨论。
class Dog{
String name;
public static void main(String[] args){
//创建Dog对象
Dog dog1 = new Dog();
dog1.bark();
dog1.name = "Bart";
//创建Dog数组
Dog[] myDogs = new Dog[3];
//关门放狗
myDogs[0] = new Dog();
myDogs[1] = new Dog();
myDogs[2] = dog1;
//通过数组引用存取Dog
myDog[0].name = "Fred";
myDog[1].name = "Marge";
System.out.print(" last dog's name is ");
System.out.print(myDogs[2].name);
int x = 0;
while(x < myDogs.length){
myDog[x].bark();
x = x + 1;
}
}
public void bark(){
System.out.print(name + " says Ruff! ");
}
}
Java数据类型(primitive)原始数据类型的更多相关文章
- Java 原始数据类型
如何记住 Java 中的原始数据类型? 画了一个图方便记忆:
- 1 Java学习之 基本数据类型
1. 基本概念 数据类型在计算机语言里面,是对内存位置的一个抽象表达方式,可以理解为针对内存的一种抽象的表达方式.接触每种语言的时候,都会存在数据类型的认识,有复杂的.简单的,各种数据类型都需要在学习 ...
- js原始数据类型和引用数据类型=>callback数据传输原理
摘要:js的数据类型有种划分方式为 原始数据类型和 引用数据类型. 原始数据类型 存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置.栈区包括了 变量的标识符和变量的值. ...
- Java 原始数据类型的计算:运算符重载(Operator Overload)和类型转换(Type Conversion)
原文阅读:<算法(第四版)>第一章 第一节:基础编程模型 有没有在面试的时候被问到:下面这几行代码的执行结果是什么?依据是什么? System.out.println (5/3); Sys ...
- JAVA 1.2(原生数据类型 Primitive Data Type)
1. Java的数据类型分为2类 >> 原生数据类型(primitive data type) >> 引用数据类型(reference data type) 3. 常量和变量 ...
- Java parseInt_使用此方法得到的原始数据类型的一个特定的字符串
Java parseInt解释加方法示例 使用此方法得到的原始数据类型的一个特定的字符串. parseXxx()是一个静态方法,可以有一个参数或两个 java parseInt ...
- Java语言基础(五) Java原始数据类型的分类以及数据范围
Java原始数据类型的分类以及数据范围 1.基本数据类型分为:整型(byte, short, int, long),浮点型(float, double),字符型(char),布尔型(boolean) ...
- Java中原始数据类型存放位置理解
原始数据类型的变量存放在栈还是堆,应该由上下文去决定. 如下所示的局部方法中,定义了本地变量a,且为原始数据类型,所以存放在栈中. public void func(){ int a = 3; } 再 ...
- Java中的原始类型(Primitive Types)与引用类型(Reference Values)
Java虚拟机可以处理的类型有两种,一种是原始类型(Primitive Types),一种是引用类型(Reference Types). 与之对应,也存在有原始值(Primitive Values)和 ...
- JAVA中分为基本数据类型及引用数据类型
一.基本数据类型: byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768 ...
随机推荐
- hnsdfz -- 6.20 -- day5
今天子贞的题...... 比前两天充实多了……肝了一个线段树,还玩了一个题答…… 虽然线段树不知道为什么50->25,题答题数据太水全场90+... 感觉也没想出来啥思路,无脑肝线段树,无脑玩题 ...
- 20175202 《Java程序设计》第三周学习总结
20175209 2018-2019-2 <Java程序设计>第三周学习总结 教材知识点总结 1.编程语言发展阶段: 面向机器语言——面向过程语言——面向对象语言. 2.类声明: 类名必须 ...
- Python之 操作 MySQL 数据库
什么是MySQLdb? MySQLdb 是用于Python链接Mysql数据库的接口,它实现了 Python 数据库 API 规范 V2.0,基于 MySQL C API 上建立的. 安装 Pytho ...
- LOJ 2548 「JSOI2018」绝地反击 ——二分图匹配+网络流手动退流
题目:https://loj.ac/problem/2548 如果知道正多边形的顶点,就是二分答案.二分图匹配.于是写了个暴力枚举多边形顶点的,还很愚蠢地把第一个顶点枚举到 2*pi ,其实只要 \( ...
- NRF51800 空中升级DFU
下面是基础软件的安装:[抄袭他人所得] 1.安装Python软件,建议版本2.7.9及以上,不超过3.0版本[以下安装步骤需要联网]2.安装Python的pip模块,通过命令提示符进入到Python的 ...
- 解决spyder、Jupyter Notebook 打不开
参考: https://blog.csdn.net/lanchunhui/article/details/72891918 https://stackoverflow.com/questions/49 ...
- Cookie 简单设置使用
cookie的理解可以为,存放在用户浏览器上的一个文件,里面是键值对数据,用于跟服务端通讯.前端可以通过jquery cookie插件设置和读取,后端直接设置 1.获取Cookie: 1 2 3 4 ...
- MapperScan和ComponentScan同时使用问题
@MapperScan:1.首先了解@Mapper 在接口上添加了@Mapper,在编译之后就会生成相应的接口实现类. 不过需要在每个接口上面进行配置,为了简化开发,就有了 @Mapper ...
- MFC 解决中文乱码问题
新的编译工具默认的是unicode编码方式,许多在多字节下面显示中文的方法已经不再适用了按照道理说设置为unicode编码后应该会很好的支持中文, 但是实际情况很悲惨,显示的都是乱码. 看到网上的很多 ...
- symfony generate bundle autoload failed的解决办法
I also encountered this problem,I add new bundle namespace in composer.json"autoload": { & ...