IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 昨晚上为了教明白小妹妹Java变量和常量,累坏我了,腰疼!DDDD~ -> 正文阅读

[Java知识库]昨晚上为了教明白小妹妹Java变量和常量,累坏我了,腰疼!DDDD~

介绍

变量被命名为内存位置。它们的值保存在内存中,我们通常记不起来,因为它们对人类不友好,而且会四处移动。不过,如果我们命名内存位置,比如 a ,就更容易记住。

环境变量与通常的编程变量非常相似,只是它们被设置在程序之外的某个地方。它可以被操作系统、JVM、我们的程序正在使用的微服务等使用。

变量分类:

局部变量在使用前必须先声明、初始化(赋初值)再使用。

类变量:

使用static定义。从属于类,生命周期伴随类始终,从类加载到卸载。如果不自行初始化,与成员变量相同会自动初始化成该类型的默认初始值。

 int    String   = 1;   //  这是对的     引用类型可以当变量名

常量

  • 在Java语言中,主要是利用关键字final来定义一个常量。常量一旦被初始化后不能再更改其值。

  • 只能被初始化一次

  • 书写:常量一般大写字母和下划线:MAX_VALUE

final关键字的作用

  1. 修饰变量: 被他修饰的变量不可改变。一旦赋了初值,就不能被重新赋值。

  2. 修饰方法:该方法 不可被子类重写。但是可以被重载 !

  3. 修饰类: 修饰的类 不能被继承 。比如:Math、String等。

成员变量不一定要赋初始值。可以再外面声明,在构造方法中赋值,也不会错。【领取资料】

面试题:

使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?
使用final关键字修饰一个变量时,是指引用变量不能变(作用在变量上),引用变量所指向的对象中的内容还是可以改变的 。

例如,对于如下语句:

c finalStringBuffer a=newStringBuffer("immutable");

执行如下语句将报告编译期错误:

c a=new StringBuffer("");

但是,执行如下语句则可以通过编译:

c a.append("broken!");

final, finally, finalize 的区别?

final用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类(这里的内部类指的是方法内部类或匿名内部类,不包含静态内部类和成员内部类
在Java8
中,被局部内部类引用的局部变量,默认添加final,所以不需要添加final关键词)要访问局部变量,局部变量必须定义成final类型。

finally是异常处理语句结构的一部分,表示总是执行。

finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。但是JVM不保证此方法总被调用。

查询环境变量

操作系统将其环境变量存储为键/值对。你可以用 System.getenv() 检索这些值。如果不带参数使用它,则会得到一个Map对象作为返回值:

Map<String, String> env = System.getenv();

for(String envName : env.keySet()){
    System.out.println(String.format("%s : %s", envName, env.get(envName)));
}

以下是结果的截断视图:

PROCESSOR_ARCHITECTURE : AMD64
MIC_LD_LIBRARY_PATH : C:\Program Files (x86)\Common Files\Intel\Shared Libraries\compiler\lib\mic
PSModulePath : C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules\
SystemDrive : C:
AWE_DIR : D:\Awesomium\1.6.6\
FPS_BROWSER_USER_PROFILE_STRING : Default
PATHEXT : .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
DriverData : C:\Windows\System32\Drivers\DriverData
HerokuPath : E:\Heroku
ProgramData : C:\ProgramData
ProgramW6432 : C:\Program Files

还可以向它传递一个与变量名称(键)对应的字符串,它将以字符串形式返回相应变量的值:

System.out.println(System.getenv("NUMBER_OF_PROCESSORS"));
8

ProcessBuilder和环境

Java有一个处理操作系统进程的进程类。为了简化流程的创建,这里有一个ProcessBuilder类,您可以简单地将命令“添加”到它的实例中运行。

每个进程都可以有自己的环境。程序的环境将由操作系统设置,但作为进程启动的程序可以有一个修改过的“手工”环境。

要编辑环境,必须使用environment()getterProcessBuilder对象获取其引用。就像从系统中读取环境变量一样,您将得到一个映射,然后可以使用通常的映射操作对其进行修改。

创建环境后,我们将创建一个命令。这取决于操作系统。在这里,我们有一个基本的检查,它充分地改变了命令:

// Setting up the environment...
ProcessBuilder processBuilder = new ProcessBuilder();
Map<String, String> env = processBuilder.environment();
env.put("PING_WEBSITE", "stackabuse.com");

if (System.getProperty("os.name").startsWith("Windows")) {
    processBuilder.command("cmd.exe", "/c", "ping -n 3 %PING_WEBSITE%")
} else {
    processBuilder.command("/bin/bash", "-c", "ping $PING_WEBSITE$");
}

try {
    // Starting the process...
    Process process = processBuilder.start();

    // Reading the output of the process
    try (BufferedReader reader = new BufferedReader(
            new InputStreamReader(process.getInputStream()))) {

        String line;

        while ((line = reader.readLine()) != null) {
             System.out.println(line);
        }
    }

    // Catch the exit code of our process
    int ret = process.waitFor();

    System.out.printf("Program exited with code: %d", ret);

} catch (IOException | InterruptedException e) {
    // Handle exception...
    e.printStackTrace();
}
Pinging stackabuse.com [172.67.218.223] with 32 bytes of data:
Reply from 172.67.218.223: bytes=32 time=12ms TTL=57
Reply from 172.67.218.223: bytes=32 time=12ms TTL=57
Reply from 172.67.218.223: bytes=32 time=15ms TTL=57

Ping statistics for 172.67.218.223:
    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 12ms, Maximum = 15ms, Average = 13ms
Program exited with code: 0
Process finished with exit code 0

我们创建了一个新的环境变量,名为PING_WEBSITE,具有固定值。您可以修改此程序,将 PING_WEBSITE 的值设置为用户输入、命令行参数或从文件中读取值。

最后,感谢大家的观看,谢谢大家的支持,能三连最好啦!希望大家都早日升职加薪,飞黄腾达!

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-07-14 10:44:42  更:2021-07-14 10:45:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 9:13:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码