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 ...
随机推荐
- ss-R:// 链接的含义
1.问题 ss-R:// Mi41LmZ1Y2twcHBwcC50b2RheToyNDI4ODphdXRoX2FlczEyOF9tZDU6YWVzLTI1Ni1jdHI6dGxzMS4yX3RpY2t ...
- js求两个数组的交集|并集|差集|去重
let a = [1,2,3], b= [2, 4, 5]; 1.差集 (a-b 差集:属于a但不属于b的集合) a-b = [1,3] (b-a 差集:属于b但不属于a的集合) b-a = [4 ...
- js获取时间戳的三种方法
1.Date.Now() 2.new Date().getTime() 3.Date.parse(new Date()) 其中1和2是相同含义 chrome控制台键入:Date.now() ===ne ...
- 嵌入式C语言预处理使用
#include 包含头文件 #define 宏 #define 宏名 (宏体) //不进行语法检查 #define ABC(x) (5+(x)) //宏函数 #define #else ...
- TCP 选项RST
1.RST介绍 RST表示reset复位,用于异常情况下关闭连接. 发送RST包关闭连接时,不必等缓冲区的包都发出去,直接就丢弃缓冲区中的包. 而接收端收到RST包后,也不必发送ACK包来确认. 2. ...
- Hibernate运行原生sql并将查询的结果转化为对象
原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.下面来描述如何使用这个API进行查询.标量查询(Scalar queri ...
- ubuntu安装yaf
ubuntu 下PHP安装yaf扩展,需要先安装其他软件 sudo apt-get install libncurses5-dev libpcre3-dev pcre-devel -y 然后再执行 p ...
- dm_analysis
# -*- coding: utf-8-*- # import sys import os import io import json reload(sys) sys.setdefaultencodi ...
- 内存泄漏学习案例-1-ArrayList
解决 内存泄漏 于是赶快登陆探测服务器,首先是 top free df 三连,结果还真发现了些异常. 我们的探测进程 CPU 占用率特别高,达到了 900%. 我们的 Java 进程,并不做大量 CP ...
- java Servlet生成随机验证码
import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; i ...