Java基本

华年 等级 405 0 0

一.整型变量

1.基本格式
int 变量名 = 初始值;

2.java中的int是4个字节。
3.java中int的最大值和最小值

如果数大于0,则最高位为0,如果数小于0,则最高位为1。在判断数值范围时,不用考虑负数采用补码形式存储,因为补码和原码是一一对应的。当最高位是1,即为负数,后面最多还有31个1,而这31个1的加值之和为2的31次方-1,而负数最高位也为1,该位在再次进位时仍满足负数的条件,即可将最高位看成数值位,故最小值为-2的31次方,最大值整数最高位必须一值为1,且原码等于补码,这就限制了整数的最大值31位的1相加,之和为2^

4.如果一个局部变量,没有进行初始化则不能使用他。
标识符可以包含:数字 字母 下划线 符 , 但 开 头 不 能 用 数 字 , 不 建 议 用 下 划 线 和 符,但开头不能用数字,不建议用下划线和 符,但开头不能用数字,不建议用下划线和.

二. 长整型变量

定义一个长整型,数字后面必须加L

java与c语言不同,没有所谓的无符号,Long有8个字节,64个比特位,首位是符号位。
如果想打印汉字的话用加号拼接。

任何类型的数据和字符串进行拼接,结果就是字符串。

小数默认为双精度类型。

因为a和b都是整型,所以打印的也是整型,不能保存小数。

任何的小数都是有精度的,没有精确值,只有一个范围,要研究这个问题需要了解浮点数在内存中的存储。
一般情况下,遇到小数,建议使用double

float是4个字节,不能把double类型放在float类型里,会编译错误,需要在小数后面加个f,体现了Java的安全。

五.字符数据类型

在java中char占两个字节,在c语言中是占一个字节的。

在java中遵循unicode字符集类似于c语言中的asii值,但unicode表示字符的范围更广了。

注意事项:

  1. 字节类型表示的也是整数. 只占一个字节, 表示范围较小 ( -128 -> +127 )
  2. 字节类型和字符类型互不相干。

每一种数据类型在赋值的时候不能超过其范围,否则会报错。

short是两个字节,取值范围是-32768到32767.
这个表示范围较小,一般不建议使用。

布尔类型:
1.在java中,布尔类型没有明确的大小。
2.在java中,布尔类型只有两个取值,true和false。
3.在java中,没有所谓的0是假,非0是真。

总结:
java中8种基本的数据类型分别是一下的:
1 2 2 4 8 4 8
byte char short int long float double boolean
Byte Character Short Integer Long Float Double Boolean

字符串类型变量

字符串类型用String进行定义
注意事项:

  1. Java 使用 双引号 + 若干字符 的方式表示字符串字面值.
  2. 和上面的类型不同, String 不是基本类型, 而是引用类型(后面重点解释).
  3. 字符串中的一些特定的不太方便直接表示的字符需要进行转义.
    字符串的 + 操作, 表示字符串拼接: 当一个 + 表达式中存在字符串的时候, 都是执行字符串拼接行为.
    因此我们可以很方便的使用 System.out.println 同时打印多个字符串或数字。

理解数值提升

int 和 long 混合运算

结论: 当 int 和 long 混合运算的时候, int 会提升成 long, 得到的结果仍然是 long 类型, 需要使用 long 类型的变量来
接收结果. 如果非要用 int 来接收结果, 就需要使用强制类型转换.
byte 和 byte 的运算

byte a = 10; 
byte b = 20; 
byte c = a + b; 
System.out.println(c); 
// 编译报错
Test.java:5: 错误: 不兼容的类型: 从int转换到byte可能会有损失
 byte c = a + b; 

结论: byte 和 byte 都是相同类型, 但是出现编译报错. 原因是, 虽然 a 和 b 都是 byte, 但是计算 a + b 会先将 a 和 b 都提升成 int, 再进行计算, 得到的结果也是 int, 这是赋给 c, 就会出现上述错误。
由于计算机的 CPU 通常是按照 4 个字节为单位从内存中读写数据. 为了硬件上实现方便, 诸如 byte 和 short 这种低于4 个字节的类型, 会先提升成 int, 再参与计算。
类型提升小结:

  1. 不同类型的数据混合运算, 范围小的会提升成范围大的.
  2. 对于 short, byte 这种比 4 个字节小的类型, 会先提升成 4 个字节的 int , 再运算.

int 和 String 之间的相互转换

int 转成 String

int num = 10; 
// 方法1 
String str1 = num + ""; 
// 方法2 
String str2 = String.valueOf(num); 

String 转成 int

String str = "100"; 
int num = Integer.parseInt(str); 

运算符

1.基本四则运算符 + - * / %
规则比较简单,值得注意的是除法
a) int / int 结果还是 int, 需要使用 double 来计算
b) 0 不能作为除数
2.关系运算符返回类型都是boolean类型。
3.移位运算符
左移 <<: 最左侧位不要了, 最右侧补 0。
右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

收藏
评论区

相关推荐

1 Java内存区域与内存溢出异常
1 java虚拟机对内存的管理 java虚拟机在执行java程序的时候把内存分为若干个不同的区,这些区各自有不同的用处,以及创建和销毁时间. 有的区随着虚拟机的启动而启动,有的区则依赖用户线程的启动和结束而启动和结束. 根据java虚拟机规范,java虚拟机将内存分为下面几个部分:如下图 image(https://imghelloworld.o
.NET C#到Java没那么难,DB篇
.NET C到Java没那么难,DB篇 .NET C到Java没那么难,DB篇 前言 .NET C到Java没那么难,都是面向对象的语言,而且语法还是相似的,先对比一下开发环境,再到Servlet,再到
.NET C#到Java没那么难,MVC篇
.NET C到Java没那么难,MVC篇 .NET C到Java没那么难,MVC篇 最典型的JAVA MVC就是JSP servlet javabean的模式。比较好的MVC,老牌的有Struts、
.NET C#到Java没那么难,Servlet篇
.NET C到Java没那么难,Servlet篇 .NET C到Java没那么难,Servlet篇 前言 .NET C到Java没那么难,都是面向对象的语言,而且语法还是相似的,先对比一下开发
Linux下安装jdk
一 、安装前 java 1.查看是否已安装JDK yum list installed |grep java 2.卸载CentOS系统Java环境 yum y remove java1.8.0openjdk 表示卸载所有openjdk相关文件输入 yum y remove tzdatajava.noarch 卸载t
Java中的浮点数四舍五入到小数点后2位的几种方法
前言 四舍五入到2或3个小数位是我们Java程序员日常开发中肯定会遇到。幸运的是,Java API提供了几种在Java中舍入数字的方法 我们可以使用Math.round(),BigDecimal或DecimalFormat将Java中的任何浮点数四舍五入到n个位置。我个人更喜欢使用BigDecimal在Java中四舍五入任何数字,因为它具有便捷的API并
Groovy初探
开始之前 了解本教程的主要内容,以及如何从中获得最大收获。 关于本教程 如果现在有人要开始完全重写 Java,那么 Groovy 就像是 Java 2.0。Groovy 并没有取代 Java,而是作为 Java 的补充,它提供了更简单、更灵活的语法,可以在运行时动态地进行类型检查。您可以使用 Groovy 随意编写 Java 应用程序,连接 Java
《java 核心技术》卷1 学习 概述 第一章Java程序设计概述
从浅面了解Java 1.Java 在语言得地位 现在有所下降 但仍是老大哥 所以值得学习 2.Java特性 1.简单性:从一方面来说 Java可以支持在小型机器上运行 必定不是很复杂得,所以上手不难 2.面向对象:Java有相比于其他的语言 更简单得接口
security 概念
security 创建核心配置文件java@EnableWebSecuritypublic class SeurityConfig extends WebSecurityConfigurerAdapter{} 改写方法java / 认证 在内存中创建了一个用户
Java里面的十万个为什么
Java里面的十万个为什么 1.不是说 JVM 是运行 Java 程序的虚拟机吗?那 JRE 和 JVM 的关系是怎么样的呢?简单地说,JRE 包含 JVM 。JVM 是运行 Java 程序的核心虚拟机,而运行 Java 程序不仅需要核心虚拟机,还需要其他的类加载器,字节码校验器以及大量的基础类库。JRE 除包含 JVM 之外,还包含运行 Java 程序的其
Java学习路线
阶段一 (夯实基础)Java基础语法学习目标:1.熟悉Java等基本概念2.掌握Eclipse/IDEA集成开发工具的安装、配置和应用3.熟悉Java基本语法、基本类型、运算符和表达式4.掌握分支、循环逻辑语句、数组等知识的应用知识点列表:JDK、JRE、JVM基本概念Java环境搭建和配置安装和使用Eclipse/IDEA开发环境Java基本数据类型变量,
Java开发面试高频考点学习笔记(每日更新)
Java开发面试高频考点学习笔记(每日更新) 1.深拷贝和浅拷贝 2.接口和抽象类的区别 3.java的内存是怎么分配的 4.java中的泛型是什么?类型擦除是什么? 5.Java中的反射是什么 6.序列化与反序列化 7.Object有哪些方法? 8.JVM内存模型 9.类加载机制 10.对象的创建和对象的布局 11.Java的四种引用
2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java 类的虚拟机使用 Java 方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表
2021年度最全面JVM虚拟机,类加载过程与类加载器
前言类装载器子系统是JVM中非常重要的部分,是学习JVM绕不开的一关。一般来说,Java 类的虚拟机使用 Java 方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表
2021年Java常见面试题目,100%好评!
专题1:JavaOOP 1、什么是B/S架构?什么是C/S架构 2、Java都有哪些开发平台? 3、什么是JDK?什么是JRE? 4、Java语言有哪些特点 5、面向对象和面向过程的区别 6、什么是数据结构? 7、Java的数据结构有哪些? 8、什么是OOP? 9、类与对象的关系? 10、Java中有几种数据类型