首页 > 编程语言 >【Java基础】02变量和数据类型

【Java基础】02变量和数据类型

时间:2024-08-03 16:05:58浏览次数:15  
标签:02 Java 变量 int 数据类型 运算符 true 字节

变量

一个数据存储空间的表示

不同数据存入具有不同内存地址的空间,相互独立,内存地址不好记,通过变量名可以简单快速地找到数据。

变量命名规则

  • 包含数字、字母、下划线、$
  • 不能以数字开头,不能是纯数字
  • 英文命名,要有意义
  • 帕斯克命名法(驼峰命名法)
  • 大骆驼:HelloWorld 首字母大写,一般用于类名
  • 小骆驼:userName 首字母小写,用于变量命名
  • 使用下划线:user_name
  • 不能使用关键字和保留字给变量和类命名

变量声明及使用

1、声明变量,根据数据类型在内存申请空间

//数据类型 变量名;               
int money;

2、赋值,即“将数据存储至对应的内存空间”(可与第一步合并)

//变量名 = 数值;
money = 1000;

3、使用变量,即“取出数据使用”

//数据类型 变量名 = 数值;               
int money = 1000; 

Scanner 的使用

// 导入Scanner类
import java.util.*;

// 创建Scanner对象
Scanner input = new Scanner(System.in);

// 获得键盘输入的数据
int now = input.nextInt();

常量

使用final 进行修饰

// final 数据类型 变量名 = 值
final int NUMBER = 12;

在程序运行过程中常量的值不可改变,常量名一般使用全大写

数据类型

分类

  • 基本数据类型 ( 栈 )
  • 引用数据类型 ( 堆,比如String)
基本数据类型 内存占用 数据范围
整型 byte 1字节8位 -128~127
short 2字节16位 -32768 (-2^15) ~ + 32767 (+2^15-1)
int(默认) 4字节32位 -2147483648(-2^31) ~ + 2147483647(2^31-1)
long 8字节64位 -2^63 ~ + 2^63-1
浮点型 float 4字节32位 1.4E-45 ~ 3.4E+38 , -1.4E-45 ~ -3.4E+38
double(默认) 8字节64位 4.9E-324 ~ 1.7E+308, -4.9E-324 ~ -1.7E+308
字符型 char 2 0-65535
布尔型 boolean 1 true false

8位 = 1字节(byte) 1024字节 = 1KB(千字节) 1024KB = 1MB(兆字节)

float money = 13.5f;
float money = 13.5F;


long l = 1234567890123l;
long l = 1234567890123L;

类型转换

自动类型转换(小转大,类型范围小的变量直接赋值给类型范围大的变量)

  • 小范围的类型会自动转换成大范围的类型运算
  • 最终结果类型由表达式中的最高类型决定
  • byte short char 是直接转换成 int 类型参与运算的

强制类型转换(大转小,强行将类型范围大的变量、数据赋值给类型范围小的变量)

需要在转换的值前添加目标类型

数据类型 变量2 = (数据类型)变量1、数据
int a = 20;
byte b = (byte)a;
System.out.println(b); // 20
/*
00000000 00000000 00000000 00010100 a(32位)
                           00010100 b(8位)*/
int i = 1500;
byte j = (byte)i;
System.out.println(j); // -36
/*
00000000 00000000 00000101 11011100 i(32位)
                           11011100 j(8位)*/

注意:

  • 强制类型转换可能造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回

运算符

赋值运算符

=

算术运算符

基本运算符:+、-、*、/、%、++、--

复合运算符:+=、-=、*=、/=、%=

关系运算符

==、!=、>、<、>=、<= (返回Boolean类型)

逻辑运算符

&&:短路与,两个操作数都是true,结果才是true

||:短路或,两个操作数一个是true,结果就是true

!:非,操作数为true,结果为false 操作数为false,结果为true

三目运算符

语法:条件 ? 结果1 : 结果2

注意

  • 算术运算符:两个整数做除法,其结果一定是整数,因为最高类型是整数。
  • 自增自减运算符:在变量前,先进行变量增减,再使用变量;在变量后,先使用变量,再进行变量自增减。
  • 复合运算符:自带强制类型转换。例:a += b => a = (a的类型)(a + b)
  • 逻辑运算符:&&一个为false、结果是false,但前一个为false,后一个条件不执行了;||一个为true、结果是true,但前一个为true,后一个条件不执行了(运算效率更高 开发中更常用)

运算符优先级

  • ( ) 优先级最高,可以通过 ( ) 控制表达式的运算顺序,提高可读性

  • 单目运算符包括 ! ++ --,优先级别高

  • 优先级别最低的是赋值运算符:=

  • 从右向左结合性的只有赋值运算符、三目运算符和单目运算符

  • !> 算术运算符 > 关系运算符 > 逻辑运算符( && > ||)

标签:02,Java,变量,int,数据类型,运算符,true,字节
From: https://www.cnblogs.com/yierg/p/18340636

相关文章

  • IPC-6012F-CN-中文版\英文版,2024 刚性印制板的鉴定及性能规范
    IPC-6012F-CN-中文版,2024刚性印制板的鉴定及性能规范链接:https://pan.baidu.com/s/1z1x5JPmcRHzeIQgMsMQRxg提取码:1234https://share.weiyun.com/s7XNX9gE 2023年10月,IPC-6012发布了最新版F版。与以往版本不同的是,F版中国成立了分技术组,收集,讨论和提交了大量制修订的意......
  • java 面向对象1
    1.java类一个类文件可以定义多个类,只能有一个用public修饰.java基本语法方面在有的很想c++.在学习java面向对象的时候我也得对比c++来学习.学习c++的三大特性:继承,多态,封装,是如何在java中体现的.2.封装,封装是类最基础的特装类通过将好几个成员数据封装成一个整体,便于数据成......
  • 【Java零基础视频教程】综合练习题(一)——基础练习
    文章目录基础练习飞机票打印素数生成验证码复制数组评委打分数字加密抽奖双色球基础练习飞机票机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。​按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)......
  • Day 8.1 NOIP2024 模拟赛 总结
    ​Day8.1NOIP2024模拟赛总结T1开赛后首先是码了本题的暴力,想了想之后只是感觉这个结构很像二叉树,然后没有细想,想着先码完后面的暴力再回来。T2Subtask2就是简单推性质,优化一下循环枚举顺序就可以了。当时想Subtask1的时候,本身是考虑枚举每一个点然后暴力向外拓展,时间......
  • Java基础总结
    1,JavaJMM(java内存模型)这个内存模型搞起来还是有点弯弯绕,一点点的整理吧。JMM的目的就是保证共享变量在多线程环境下的原子性,可见性,与有序性而定义的一组规范。这些问题的出现都跟CPU的设计有关系,CPU是计算机的运算核心所有的操作或者说指令都是在CPU里面运行的,而且CPU的运行......
  • 学生java学习路程-5
    ok,到了一周一次的总结时刻,我大致会有下面几个方面的论述:1.这周学习了Java的那些东西2.这周遇到了什么苦难3.未来是否需要改进方法等几个方面阐述我的学习路程。抽象类abstract接口interface,定义时加入注释解释接口含义String类String是不可变字符串,所有的替换,截取子字符串,......
  • Java SE核心技术——9抽象类
    面向对象编程(Object-OrientedProgramming,简称OOP)和面向过程编程(Procedure-OrientedProgramming)是两种不同的编程范式,它们在设计和实现软件时采用了不同的方法和哲学。一、面向对象编程核心概念:面向对象编程的核心是"对象",对象可以包含数据(属性)和代码(方法)。万物皆对象。封......
  • Caused by: java.lang.ClassNotFoundException:org.apache.hadoop.hive.conf.hiveConf
    在sqoop执行create-hive-table时候报错这样,java.io.IOException:原因是缺失jar包,可能是sqoop conf文件的sqoop-env-template.sh里面没有配置相关的hadoop hivezookeeper 的相关环境变量进入sqoop的conf文件下找到sqoop-env-template.sh进入添加相关得到环境变量(注意......
  • Flink 开发语言选择 —— Java vs Scala
    引言ApacheFlink是一个用于处理无界和有界数据流的开源分布式计算框架。随着Flink的日益流行,越来越多的开发者开始考虑使用哪种编程语言来进行Flink应用程序的开发。本文将探讨在Flink中使用Java和Scala的优缺点,并帮助你做出更明智的选择。1.背景简介Flink支......
  • 搞定Java ArrayList,就看这一篇!
    大家好,我是小欧!今天我们来聊聊Java中的ArrayList。作为一个Java新手,初次接触ArrayList可能会觉得有点懵,不过不用担心,这篇文章会带你从零开始一步步搞定ArrayList。我们会从基础概念开始,然后逐步深入,最后通过几个实际案例来巩固学习成果。ArrayList是什么?简单来说,ArrayLis......