为什么需要变量?

变量是一个程序的基本组成单位。

变量的概念:

变量相当于内存中一个数据存储空间的表示,你可以把变量看做是一个房间的门牌号,通过门牌号我们可以找到房 间,而通过变量名可以访问到变量(值)。

变量的三要素:

①数据类型        ②变量名        ③变量值

变量的基本使用步骤

①创建一个变量②给变量赋值

  1. int a;//声明一个变量,类型为int整型,名称为a
  2. a=60;//把60的值赋给a身上
  3. //等价于-->int a = 60;

变量的注意事项:

1.变量表示内存中的一个存储区域(不同的变量,类型不同,占用的空间大小不同。)

2.该区域有自己的名称(变量名)和类型(数据类型)

3.变量必须先声明,后使用。

4.该区域的数据/值可以在同一类型范围内不断变化。

5.变量在同一个作用域内不能重名。

6.变量=变量名+值+数据类型

数据类型:

1. Java  数据类型分为两大类 基本数据类型和引用类型

2. 基本数据类型有 8 种数值型 [byte , short , int , long , float ,double] char , boolean

3.  引用类型 [类,接口, 数组]

基本数据类型:

①整数型:byte、short、int、long

类型  占用存储空间 范围
byte[字节] 1个字节  -128 ~ 127
short[短整型] 2个字节 -(2^15) ~ 2^15-1
int[整型] 4个字节      -2^31 ~ 2^31-1
long[长整型] 8字节 -2^63 ~ 2^63-1

整型注意事项:

(1)Java 的整数类型就是用于存放整数值的,比如 12 , 30, 3456 等等

(2)Java整型变量(具体值)默认为int型。通常情况下使用int型,除非不足以表示大数,才使用long。声明long型常量须后加"l"或"L"

(3)Java各整数类型有固定的范围和字段长度,不受具体OS(操作系统)的影响,以保证Java程序的可移植性

(4)bit:计算机中最小存储单位。byte:计算机中基本存储单元。1byte=8bit

②浮点型:double、float

类型 占用存储空间 范围
单精度float 4个字节 -3.403E38 ~ 3.403E38
双精度double 8个字节 -1.798E308 ~ 1.798E308

浮点型注意事项:

(1)Java 的浮点类型可以表示一个小数,比如 123.4  ,7.8  ,0.12 等等

(2)与整数类型类似,Java浮点类型也有固定的范围和字段长度,不受具体OS的影响。

(3)Java浮点型常量(具体值)默认为double,通常情况下使用double型,因为它比float型更精确。声明float型常量,须后加"f"或"F"

③字符型:char

字符类型可以表示单个字符,字符类型是 char,char 是两个字节(可以存放汉字),多个字符用字符串 String

字符型注意事项:

(1)字符常量是用单引号(' ')括起来的单个字符。例如:char c1='a';        char c2='1';

(2)Java中还允许使用转义字符 ' \ ' 来将其后的字符转变为特殊字符型常量。例如:char c3=' \n';

(3)在Java中,char的本质是一个整数,在输出时,是Unicode码对应的字符。

(4)可以直接给char赋一个整数值,输出时会按照对应的Unicode字符输出。例如:97->a

(5)char类型是可以进行运算的,相当于一个整数,因为它都有对应的Unicode码。

④布尔型:boolean

(1)布尔类型也叫boolean类型,boolean类型数据允许取值true和false,无法null。

(2)boolean类型占1个字节。

(3)boolean类型适于逻辑运算,一般用于程序流程控制。

基本数据类型转换:

当Java程序在进行赋值或者运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换。

自动类型转换:

数据类型按精度(容量)大小排序为:

char < int < long < float < double

byte <short < int <long < float < double

自动类型转换注意事项:

(1)有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量大的那种数据类型,然后再进行计算。

(2)当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。

(3)(byte,short)和char之间不会相互自动转换。当吧具体数赋给byte时,先判断该数是否在byte范围内,如果是就可以。

(4)byte,short,char他们三者之间可以计算,在计算时首先转换为int类型。

(5)boolean不参与转换

(6)自动提升原则:表达式结果的类型自动提升为操作数中最大的类型。

强制类型转换:

自动类型转换的逆过程,将容量大的数据类型转换为容量小的数据类型。使用时要加上强制转换符 ( ),但可能造成 精度降低或溢出,格外要注意。

强制类型转换注意事项:

(1)当进行数据的大小从大到小,就需要使用到 强制转换。

(2)强制符号只针对于最近的操作数有效,往往会使用小括号提升优先级。

  1. int x = (int)10*3.5+6*1.5;//错的
  2. int y = (int)(10*3.5+6*1.5);//对的
  3. System.out.println(y);

(3)char类型可以保存int的常量值,但不能保存int的变量值,需要强转

  1. char c1 = 100;//ok
  2. int m = 100;//ok
  3. char c2 = m;//错误
  4. char c3 = (char)m;//ok
  5. System.out.println(c3);//100对应的字符

4.byte、short、char类型在进行运算时,当做int类型处理。

基本数据类型和 String 类型的转换:

在程序开发中,我们经常需要将基本数据类型转成String类型。或者将String类型转成基本数据类型。

基本类型转String类型:

语法:将基本类型的值+" " 即可。

  1. int n1 = 100;
  2. String str1 = n1 + "";

String类型转基本数据类型:

语法:通过基本类型的包装类调用parseXX方法即可。

  1. int num1 = Integer.parseInt(s5);
  2. double num2 = Double.parseDouble(s5);
  3. float num3 = Float.parseFloat(s5);

怎么把字符串转成字符 char?

指 把字符串的第一个字符得到

  1. String s5 = "123";
  2. System.out.println(s5.charAt(0));

基本数据类型和 String 类型转换的注意事项:

(1)在将 String  类型转成 基本数据类型时,要确保String类型能够转成有效的数据。比如 我们可以把 "123" ,  转成一 个整数,但是不能把 "hello" 转成一个整数

(2)如果格式不正确,就会抛出异常,程序就会终止。

零基础学Java之Java学习笔记(三):变量和数据类型的更多相关文章

  1. java之jvm学习笔记三(Class文件检验器)

    java之jvm学习笔记三(Class文件检验器) 前面的学习我们知道了class文件被类装载器所装载,但是在装载class文件之前或之后,class文件实际上还需要被校验,这就是今天的学习主题,cl ...

  2. Java学习笔记之——变量与数据类型、运算符

    一.变量 1.变量:变化的值 变量在代码运行期间,开辟了一块空间 .这块空间是有地址的,给这块取了个名字, 这个名字就叫做变量名,这块空间放的东西叫做变量值 2.变量的初始化: (1)先声明再赋值: ...

  3. 《手把手教你学C语言》学习笔记(6)---数据类型和常量

    计算机中需要保存信息,就需要数据存储,数据的存储就需要划分数据类型.主要包括:基本数据类型.指针类型.构造类型.空类型. 基本类型:整型---主要用来表示整数,可以分为无符号和有符号:又分为基本整型. ...

  4. 《零基础学JavaScript(全彩版)》学习笔记

    <零基础学JavaScript(全彩版)>学习笔记 二〇一九年二月九日星期六0时9分 前期: 刚刚学完<零基础学HTML5+CSS3(全彩版)>,准备开始学习JavaScrip ...

  5. 零基础学Java,PayPal技术专家手把手带你入门

    在最权威的 TIOBE 编程语言排名榜单上,Java 常年稳居第一,可以说是世界上应用最为广泛的一门语言. 同时,在微服务.云计算.大数据.Android App 开发等领域,Java 也是当之无愧的 ...

  6. 零基础学Java第四节(字符串相关类)

    本篇文章是<零基础学Java>专栏的第四篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! String 本文章首发于公众号[编程攻略] 在Java中,我们经 ...

  7. 零基础学Java第三节(基本输入输出)

    本篇文章是<零基础学Java>专栏的第三篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] Java程序的命令行参数 我们可以 ...

  8. 零基础学Java第一节(语法格式、数据类型)

    本篇文章是<零基础学Java>专栏的第一篇文章,从本篇文章开始,将会连更本专栏,带领大家将Java基础知识彻底学懂,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! ...

  9. 零基础学Java第五节(面向对象一)

    本篇文章是<零基础学Java>专栏的第五篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 类与对象 在哲学体系中,可以分为主 ...

  10. 零基础学Java第二节(运算符、输入、选择流程控制)

    本篇文章是<零基础学Java>专栏的第二篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 第一章 运算符 1.1 算术运算符的概述和用法 运算符 对常量和变 ...

随机推荐

  1. Apache Superset 1.2.0教程 (二)——快速入门(可视化王者英雄数据)

    上一篇我们已经成功的安装了superset,那么该如何可视化我们的数据呢?本文将可视化王者英雄的数据,快速的入门Superset. 一.连接数据源 首先确保mysql可以正常连接使用,并且准备好数据. ...

  2. java基础---集合(2)

    一. Set 集合 java.util.Set集合是Collection集合的子集合,与List集合平级.该集合中元素没有先后放入次序,且不允许重复. 存储的数据在底层数组中并非按照数组索引的顺序添加 ...

  3. CF1539C Stable Groups[题解]

    Stable Groups 题目大意 给定 \(n\) 个数 \(a_i\) ,你可以将这些数分成若干组,但每一组的元素满足按升序排列后,相邻两个元素值的差不超过 \(x\) .在分组前,你可以向这些 ...

  4. sync/fsync/fdatasync的简单比较

    此文主要转载自 http://blog.csdn.net/zbszhangbosen/article/details/7956558 官网上有关于MySQL的flush method的设置参数说明,但 ...

  5. IDEA如何导出war包

    网上有很多关于IDEA导出war包的教程,然而很多照着一步步操作以后,war包并不能在对应目录中找到.参考网上一篇博文,发现其方法描述比较详细且经验证有效. 完整流程如下: 首先点击这里进入项目的配置 ...

  6. 第二十五篇 -- C++宝典中的图书管理系统

    此篇文章是基于C++宝典写的图书管理系统,本人对其中的部分做了相应修改,并且以现有格式替代原有格式,使程序更加清晰明了.此程序运行在VS2017上. 系统设计 图书管理系统分为四个模块:图书管理模块. ...

  7. string子串匹配(用string自带函数,不涉及char数组转换)

    using namespace std; #include <iostream> #include<string> //第1种,用string自带的s.subdtr()截取任意 ...

  8. c++ 的父类 new 重载, 子类new 对象的时候会调用父类的operater new

    子类在new 对象的 时候  父类的new 进行了重载,那么会调用父类的operater new() 函数 #include <iostream> #include <string& ...

  9. SourceTree 3.1.3版本跳过注册

    1.进入文件夹 %LocalAppData%\Atlassian\SourceTree\ 找到SourceTree的目录 2.里面添加一个json文件 accounts.json 内容如下: [{&q ...

  10. 【Maven实战技巧】「插件使用专题」Maven-Assembly插件实现自定义打包

    前提概要 最近我们项目越来越多了,然后我就在想如何才能把基础服务的打包方式统一起来,并且可以实现按照我们的要求来生成,通过研究,我们通过使用maven的assembly插件完美的实现了该需求,爽爆了有 ...