当前位置: 首页 > news >正文

【JAVA】从入门到放弃-02-工具、类型、输入输出

1、缩写表

JVM:Java Virtual Machine(Java 虚拟机),是 Java 跨平台的核心,负责执行字节码。
JRE:Java Runtime Environment(Java 运行时环境),包含 JVM 和运行 Java 程序所需的核心类库。
JDK:Java Development Kit(Java 开发工具包),包含 JRE、编译器(javac)、调试工具等,用于开发 Java 程序。
JLS:Java Language Specification(Java 语言规范),定义 Java 语言的语法和特性。
JVM TI:JVM Tool Interface(JVM 工具接口),用于开发监控、调试 Java 程序的工具。

javac:编译工具
java:运行工具
jdb:调试工具
jhat:内存分析工具

开发环境:
在这里插入图片描述

运行环境:
在这里插入图片描述

2、基本类型

2.1 整数型

1)byte(和C++中char类似)

  • 占 1 字节(8 位)
  • 取值范围:-128 ~ 127
  • 示例:byte age = 25;

2)short

  • 占 2 字节(16 位)
  • 取值范围:-32768 ~ 32767
  • 示例:short score = 95;

3)int(最常用)

  • 占 4 字节(32 位)
  • 取值范围:-2³¹ ~ 2³¹-1(约 -21 亿~21 亿)
  • 示例:int population = 1000000;

4)long(C++中32位硬件,可能占用4字节)

  • 占 8 字节(64 位)
  • 取值范围:-2⁶³ ~ 2⁶³-1
  • 声明时需在数值后加 L 或 l(推荐大写 L 避免与数字 1 混淆)
  • 示例:long distance = 1234567890L;

注意:long类型的数值后加L和不加L是不一样的

2.2 浮点类型(小数型)

1)float(单精度浮点型)

  • 占 4 字节(32 位)
  • 精度较低,适合存储不需要高精度的小数
  • 声明时需在数值后加 F 或 f
  • 示例:float pi = 3.14F;

2)double(双精度浮点型,最常用)

  • 占 8 字节(64 位)
  • 精度是 float 的两倍,默认浮点数值的类型
  • 示例:double price = 99.99;(可省略 D/d)

2.3 字符类型

char(C++中char为8位)

  • 占 2 字节(16 位),采用 Unicode 编码
  • 用于存储单个字符(字母、数字、符号等)
  • 声明时用单引号 ‘’ 包裹
  • 示例:char gender = ‘男’; 或 char letter = ‘A’;(也可直接使用 Unicode 编码:char heart = ‘\u2764’;)

2.4 布尔类型

boolean

  • 占 1 位(理论上),实际存储可能占用 1 字节
  • 仅用于表示 true(真)或 false(假),常用于条件判断
  • 示例:boolean isPass = true;

2.5 内存中存储位置

基本类型:直接存储值本身;
局部变量(方法内声明):存储在栈帧(Stack Frame)中,随方法调用创建,方法结束后自动释放。
实例变量(类中声明,非 static):作为对象的一部分存储在堆内存(Heap)中,随对象创建而分配,垃圾回收时释放。
静态变量(类中声明,带 static):存储在方法区(Method Area)的静态区,随类加载而创建,类卸载时释放。

2.6 引用类型

引用类型(如 String、数组、对象):变量存储的是对象在堆内存中的地址引用,而非值本身;

包装类的影响:如果将基本类型封装为包装类(如 Integer、Double),则会作为对象存储在堆中,变量存储的是对象引用。
栈内存的效率:栈内存的分配和释放速度比堆内存快,因此基本类型的访问效率通常高于引用类型。
默认值:未初始化的基本类型变量有默认值(如 int 为 0),而局部变量必须显式初始化才能使用(否则编译报错)

空值:null,仅能用于引用类型(如对象、数组、字符串等),不能用于基本类型(int、boolean 等)

3、标识符

标识符的命名规则

  • 由数字、字母、下划线_、或美元$符组成;(C++中没有$
  • 不能以数字开头
  • 不能是关键字

4、输入输出demo

import java.util.Scanner;
public class Demo4Scanner{public static void main(String[] args){Scanner scanner = new Scanner(System.in);System.out.println("请输入数字");int num = scanner.nextInt();System.out.print("输入的数字是:");System.out.println(num);}
}

1)头文件
java中使用 import 关键字引入头文件,C++中是#include
头文件的语句后也有分号“;”,C++中没有,而是使用大括号<>或者引号标注头文件名

2)输入使用java.util.Scanner
如果输入的是int型数字,输入的数字范围不能太长否则报错:

java Demo4Scanner
请输入数字
1234567890123
Exception in thread "main" java.util.InputMismatchException: For input string: "1234567890123"

System.out.print(); 打印时,没有回车
System.out.println(num); 打印时,有回车

编译、输出

PS D:\java\test> javac .\Demo4Scanner.java
PS D:\java\test> java Demo4Scanner
请输入数字
89787876
输入的数字是:89787876
http://www.dtcms.com/a/410627.html

相关文章:

  • 伪静态怎么设置(详细教程)
  • 【leetcode】57. 插入区间
  • 多sheet excel 导出
  • 手机移动端网站是什么用什么软件做网站布局
  • cesium-kit:让 Cesium 开发像写 UI 组件一样简单
  • 电子工程师网站wordpress the ken
  • Nginx HTTPS 深入实战 配置、性能与排查全流程(Nginx https
  • 网站建设和优化的营销话术亚马逊雨林生存游戏手机下载
  • 一场“无感换心”手术:金仓数据库如何让电子证照系统平滑告别MongoDB
  • 【开源】基于STM32的新疆地区棉花智能种植系统
  • 高平市规建设局网站短链接生成器
  • 解决SSL握手失败问题:SSLHandshakeException: Received fatal alert: handshake_failure
  • 降级版本Pillow解决freetypefont has no attribute getsize问题
  • 网站设计实例教程wordpress引用文章
  • 基于蜣螂优化的LSTM深度学习网络模型(DBO-LSTM)的一维时间序列预测算法matlab仿真
  • 改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
  • 有什么公司要做推广的网站推广优化软件
  • visual studio 2019配置qt程序
  • 漏标(Missing Mark)问题深度解析
  • OpenAI近日推出了一项名为 ChatGPT Pulse 的全新功能
  • 购物网站后台设计wordpress怎么设置404页面跳转
  • 销售网站免费做珠海品牌型网站建设
  • Lucene 8.7.0 版本中dvd、dvm文件详解
  • Ubuntu 系统上安装 jdk-23_linux-x64_bin.tar.gz
  • o2o网站制作公司广告设计与制作标书
  • 苏州网站推广建设安全达标建设网站
  • 丙烯酸胶粘剂怎么选?先避 3 个坑,再挑靠谱品牌
  • Solidworks练习13-拉伸、拉伸切、筋
  • LeetCode算法日记 - Day 54: 二叉树的所有路径、全排列
  • 人脸模型训练-推理完整过程附代码