java中的变量、数据类型、人机交互

变量

变量要素

1、类型;每一个变量都需要定义类型(强类型)其它语言有弱类型(js)

2、变量名;

3、存储的值;

声明方式:

数据类型 变量名 = 变量值;

public static void main(String[] args) {
        // 方式一
        char gender;//变量的声明;
        gender = '女'; //变量的赋值;初始化;

//        gender = "男"; //不能是用双引号,会报错:String无法转换为char;

        // 方式二
        int age = 19;

        byte bt = 0;
        long ll = 123123L;
        System.out.println(gender);
        System.out.println("age = " + age);
        System.out.println(ll); //123123
    }

数据类型

一、基本数据类型:(8种)

1、整型;

(1)byte
(2)short
(3)int
(4)long

2、浮点型

(1)float

  • 4字节 尾数可以精确到7位;

(2)double

  • 8字节 通常采用此类型;

float 占用空间比long要小,表述范围比long还要大~~~~~;但是精度太差; 声明float类型的话,需要添加后缀:f或者F;否则就是double了; //从double转换到float可能会有损失

如果没有特殊情况就使用double; 浮点型变量的精度都不高; 开发中使用通过BidDecimal类去替换;

double = 1; 整型可以赋值给浮点型;之后就自动转为浮点型1.0;

class Float{
    public static void main(String[] args) {
        float f1 = 1.1f;
        double d1 = 1.1;
        double d2 = 666;
        System.out.println(f1 + d1);
        double pi = 3.14;
        double radius = 1.22;
        double radius2 = 3.444;
        double radius3 = 4.5555;
        double area1 = pi * radius * radius;
        double area2 = pi * radius2 * radius2;
        double area3 = pi * radius3 * radius3;
        System.out.println("area1Ãæ»ýΪ:" + area1);
        System.out.println("area2Ãæ»ýΪ:" + area2);
        System.out.println("area3Ãæ»ýΪ:" + area3);
        // c = (f-32)/1.8;
        double h = 80;
        double s = (h - 32) / 1.8;
        System.out.println("f_" + h + "=s_" + s);
    }
}
3、字符型:char

1、占用两个字节;和short占用空间一样;
三种表现形式:
1、使用单引号表示,内部只有一个字符;有且只有一个;
所有的字符都使用unicode编码来表示;
所以全世界所有的值都可以付给字符;

2、形式2:
char c = ‘\uxxxx’; xxxx为unicode编号值(十六进制、四位);

3、形式3;
使用转义字符:‘\n’, ‘\t’;

4、形式4;
直接表示一个数值;(对应的是asc2码);
char c = 97; // =>结果是:a;

class Char{
    public static void main(String[] args) {
        char c1 = 's';
        // char c2 = ''; // 必须要有值;
        // char c3 = 'ss'; //而且只能有一位
        char c3 = '\u0001';
        System.out.println(c3);
        char line = '\n';
        System.out.println("sdfsdf" + line + "sdfsdf");
        char a = 97;
        System.out.println(a);
    }
}
4、布尔型:

只有两个取值: true/false;
常使用在流程控制中;

Boolean占用几个字节?

就两个值;==》在内存中放的话就两个值:1、0;占用空间默认为int,四个字节; (不谈布尔占几个字节)

class Boolean {
    public static void main(String[] args) {
        double d1 = 111L;
        System.out.println(d1);
        byte b = 1;
        int i = 111 + b;
        System.out.println(i);

        byte bb = 12;
        short s1 = 10;
        // short s2 = b + s1; //×Ô¶¯×ªÎªintÀàÐÍ£»±¨´í£»

        byte b2 = 10;
        byte b3 = 11;
        // byte b4 = b2 + b3; //×Ô¶¯×ªÎªintÀàÐÍ£»±¨´í£»
        short s2 = 11;
        short s3 = 123;
        // short s4 = s2 + s3; // 
        // long l1 = 1234564563333; //  
        // 1234564563333  
        long l2 =1234564563333L; // 
        System.out.println(l2);
    }
}

类型转换

布尔类型

Boolean:略;

javac.exe是编译器、jvm是java虚拟机、公认最强的虚拟机

可以做运算的数据类型有七中;,布尔类型不行:**所以true+1会转换为1+1;

 @Test
    public void test(){
        Integer i2 = new Integer(10);
        System.out.println(i2);
        Float f1 = new Float(10);
        System.out.println(f1);
        Boolean b1 = new Boolean(true);
        /*只要参数和true不像的情况下,都是false(忽略大小写)*/
        Boolean b2 = new Boolean("true");
        System.out.println(b2);
        System.out.println(b1.toString());
        Character c1 = new Character('1');
        System.out.println(c1);

        /*1.8以后使用valueOf*/
        Boolean b3 = Boolean.valueOf("");
        System.out.println(b3);
        /*转换*/
        boolean b4 = b3.booleanValue();
        System.out.println(b4);
    }

自动装箱拆箱

public class WrapperTest {
    @Test
    public void test1(){
         /* 自动装箱 */
        Integer i2 = 10;
        Boolean b = true;
        Double d = 1.0;
        Float f = 1.0F;
        /*自动拆箱*/
        int i3 = i2;
        boolean b2 = b;
        double d2 = d;
        float f2 = f;
    }
}
运算规则:

1、自动类型提升;

(1)、容量小的变量与容量大的变量做运算时,结果自动转换为容量大的数据类型;

这个容量大指的是:表示数据范围的大小;8个字节、4个字节;等等
byte 、 short、char => int => long => float => double;

所以 double f1 = 111L;是成立的;没有问题的;

特殊的情况;

1、Byte和byte 、short和 short、byte 和 short 之间任意相加之后自动转为int类型;(整型常量,规定是int类型)

Long ll = 123; 将int 类型123转为long类型;自动类型提升;123的值不能超过int的范围;

2、char 和 char、char 和 byte/short 相加之后自动转为int;
其他:

3、浮点类型常量,规定是double类型;
Float ff = 12.2; 将double转为float类型,会报错;应该float ff = 12.2F;

2、强制类型转换;

(1)、使用强转符:”小括号” 来进行转换;

Long ll = 123L;
Int ii = (int)ll;
**

short s2 = 123;
short s3 = (short)s2;//这样也可以,虽然没有必要;

(2)、使用强制转换可能会经度丢失;(长转短)
不仅仅是截断,

Int i = 128;

(3)Byte b =(byte)i;//-127; 高位删除,符号位变化;

public class Translate {
    public static void main(String[] args) {
        double d1 = 111.11;
        // int i1 = d1; //´óתСʧ°Ü£»
        /* Ç¿ÖÆÀàÐÍת»» */
        int i2 = (int)d1;

        System.out.println(i2);

        long l1 = 123L;
        short s1 = (short)l1;

        short s2 = 123;
        short s3 = (short)s2;//ÕâÑùÒ²¿ÉÒÔ£¬ËäȻûÓбØÒª£»
    }
}
public class TranslateTest {
    
    /* 基本数据类型转为String */
    @Test
    public void test(){
        String str = true + "";
        System.out.println(str);
        String str2 = String.valueOf(1);
        System.out.println(str2);
    }

    /* String 转为其他 */
    @Test
    public void test2(){
        int i = Integer.parseInt(String.valueOf(1));
        System.out.println(i);
        boolean b = Boolean.parseBoolean("true");
        System.out.println(b);
    }

    @Test
    public void test3(){
        Integer m = 127;
        Integer n = 127;
        System.out.println(m == n); //true
        Integer j = 128;
        Integer k = 128;
        System.out.println(j == k); //false
    }
    @Test
    public void test4(){
        Integer m = 1000;
        double d = 1000;
        int n = 1000;
        System.out.println(m == n); //true
        System.out.println(m == d); //true
        System.out.println(n == d); //true
    }

    @Test
    public void test5(){
        Object o1 = true ? new Integer(1) : new Double(1);
        System.out.println(o1); // 1.0

        Object o2;
        if(true) {
            o2 = new Integer(1);
        } else {
            o2 = new Double(1);
        }
        System.out.println(o2); // 1
    }
}

二、引用数据类型:

1、类(class)
2、数组(array)
3、接口(interface)
4、枚举(enum)
5、注解(annotation)————新特性
6、记录(record)–新特性
  • **定义变量时,记得遵循规范;

**变量都有其作用域;只在作用域内有效;

Byte 一个字节最大是127;-128~127;
一个k = 1024byte
一个字节8位(bit),256种可能;正负各一半;
Short 两个字节:

声明long类型时需要后缀l(大写或者小写)
Long l = 123L;

无特殊情况都是用int;
常量默认是int类型;

在这里插入图片描述

人机交互方式

1、GUI 图形化界面;

2、CLI 命令行交互方式:DOS命令;

JIT 即时编译器;所以效率提升和C#齐平;

即时编译器(JIT compiler,just-in-time compiler)是一个把Java的字节码(包括需要被解释的指令的程序)转换成可以直接发送给处理器的指令的程序。

十大排序;

之快速排序;得写几十遍才能成事- -。;

变量与运算符

1、 关键字;(都是小写字母)

2、标识符;identifier(自己起的名字就是标识符)

命名规则:

1、 26个英文字母大小写,0-9, _,$ 四种类型组成;

2、数字不可以开头;

3、 避开关键字和保留字;(不可以使用,但可以包含myClasse)

4、不能包含空格;

5、 区分小写,长度无限制;

命名规范:(道德范围)

1、包名: 都小写;

2、类名、接口名:大驼峰;

3、变量、方法名: 小驼峰;

4、常量名: 全大写,使用下划线连接: XXX_BBB_JJJ

5、见名知意;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/619579.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

UDP怎么端口映射?

在网络通信中,TCP和UDP是两种常用的传输协议。UDP(User Datagram Protocol)是一种无连接的传输协议,相较于TCP协议来说,它更为轻量级且不可靠。UDP协议在某些场景下仍然有其独特的优势,尤其是在需要快速传输…

如何训练一个大模型:LoRA篇

目录 写在前面 一、LoRA算法原理 1.设计思想 2.具体实现 二、peft库 三、完整的训练代码 四、总结 写在前面 现在有很多开源的大模型,他们一般都是通用的,这就意味着这些开源大模型在特定任务上可能力不从心。为了适应我们的下游任务,…

用python写算法——队列笔记

1.队列定义 队列是一种特殊的线性表,它只允许在表的前端进行删除操作,在表的后端进行插入操作,和栈一样,队列是一种操作受限制的线性表。进行插入操作的端称为队尾,进行删除操作的端称为队头。队列中没有元素时&#…

C控制语句:分支和跳转

1.1if语句 //colddays.c --找出0摄氏度以下的天数占总天数的百分比 #include <stdio.h>int main(void) {const int FREEZING 0;float temperature;int cold_days 0;int all_days 0;printf("Enter the list of daily low temperature.\n");printf("Use…

Kexp 动态展示 k8s 资源对象依赖关系

kexp[1] 旨在以可视化的方式帮助用户理解和探索 Kubernetes 的能力。 适用场景&#xff1a; 学习和探索 Kubernetes 的功能。 应用开发&#xff0c;提供每个应用的对象图预设。 控制器和操作器的开发&#xff0c;支持动态对象图。 即将推出类似 Postman 的 Kubernetes API …

程序猿成长之路之数据挖掘篇——距离公式介绍

上一篇介绍了朴素贝叶斯&#xff0c;那么这次讲讲距离公式 什么是距离公式 用自己的话来说距离公式就是判断两个属性&#xff08;参数&#xff09;相似度的度量公式,比如以两点间距离为例&#xff0c;A地经纬度为(110.9802,120.9932)&#xff0c;B地经纬度为(110.9980,120.828…

Java | Leetcode Java题解之第86题分隔链表

题目&#xff1a; 题解&#xff1a; class Solution {public ListNode partition(ListNode head, int x) {ListNode small new ListNode(0);ListNode smallHead small;ListNode large new ListNode(0);ListNode largeHead large;while (head ! null) {if (head.val < x…

PyQt5中的LineEdit单行文本框

文章目录 1. 简介1.1 常用方法&#xff1a;1.2 常用信号&#xff1a; 2. LineEdit常用方法使用案例3. LineEdit常用信号使用案例 1. 简介 在PyQt5中&#xff0c;LineEdit&#xff08;单行文本框&#xff09;是一个常用的组件&#xff0c;它允许用户输入文本。以下是一些LineEd…

【游戏引擎】unity

目录 Unity入门教程&#xff1a;从零到英雄的旅程前言第一步&#xff1a;下载和安装Unity第二步&#xff1a;创建你的第一个Unity项目第三步&#xff1a;熟悉Unity界面第四步&#xff1a;创建一个简单的游戏对象第五步&#xff1a;编写脚本赋予游戏对象生命第六步&#xff1a;运…

华为OD机试【统一限载货物数最小值】(java)(200分)

1、题目描述 火车站附近的货物中转站负责将到站货物运往仓库&#xff0c;小明在中转站负责调度 2K 辆中转车(K辆干货中转车&#xff0c;K 辆湿货中转车)货物由不同供货商从各地发来&#xff0c;各地的货物是依次进站&#xff0c;然后小明按照卸货顺序依次装货到中转车&#xf…

如何解决pycharm在HTML文件中注释快捷键出错的问题(HTML注释规则出错)

文章目录 💢 问题 💢🏡 演示环境 🏡💯 解决方案 💯⚓️ 相关链接 ⚓️💢 问题 💢 你是否在编程时遇到过这样的烦恼?当你正专注地编写HTML代码,想要快速注释掉某部分内容时,却发现PyCharm的注释快捷键失灵了(没有使用正确的注释格式)。这不仅打断了你的工作…

【论文笔记】利用扩散模型DDPM做变化检测change detection

去噪扩散模型DDPM去年开始在各种视觉任务取得惊人的效果&#xff0c;变化检测领域也不例外&#xff0c;本文介绍两篇关于如何使用扩散模型实现变化检测的论文。第一篇做法较为自然&#xff0c;先利用遥感数据预训练DDPM&#xff0c;然后将预训练好的网络当作变化检测任务的特征…

设计模式-结构型-适配器模式-Adapter

地址类 public class Address {public void street() {System.out.println("普通的街道");}public void zip() {System.out.println("普通的邮政编码");}public void city() {System.out.println("普通的城市");} } 荷兰地址类 public class …

用lobehub打造一个永久免费的AI个人助理

Lobe Chat是一个开源的高性能聊天机器人框架&#xff0c;它被设计来帮助用户轻松创建和部署自己的聊天机器人。这个框架支持多种智能功能&#xff0c;比如语音合成&#xff08;就是让机器人能说话&#xff09;&#xff0c;还能理解和处理多种类型的信息&#xff0c;不仅限于文字…

关于USB 3.1电气参数的探讨

目录 0 引言 1 抖动预算 2 时钟恢复-CDR 3 测试码型-PRBS16 4 传输码型-128b/132b 5 眼图模板-Eye Mask 6 发射均衡 7 接收均衡 7.1 CTLE均衡 7.2 DFE均衡

Postman历史版本安装与runner测试

前言 实际上就是笔者本地做demo&#xff0c;postman使用了最新版本&#xff0c;本身也没问题&#xff0c;不过postman不支持不登录做runner测试了&#xff0c;很多功能必须登录账号才能使用&#xff0c;否则只能使用http工具发送的能力&#xff0c;而postman本身就是一个简单工…

栈和队列经典练习题

目录 前言&#xff1a; 一、括号匹配问题 1.题目描述 2.解题思路 3.题目链接 二、用队列实现栈 1.题目描述 2.解题思路 3.题目链接 三、用栈实现队列 1.题目描述 2.题目分析 3.题目链接 四、设计循环队列 1.题目描述 2. 题目分析 3.题目链接 最后 前言&#xff1a; 前…

JCR一区 | Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预测

JCR一区 | Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预测 目录 JCR一区 | Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 Matlab实现1D-2D-GASF-CNN-BiLSTM-MATT的多通道输入数据分类预…

未授权访问:VNC未授权访问

目录 1、漏洞原理 2、环境搭建 3、未授权访问 防御手段 今天继续学习各种未授权访问的知识和相关的实操实验&#xff0c;一共有好多篇&#xff0c;内容主要是参考先知社区的一位大佬的关于未授权访问的好文章&#xff0c;还有其他大佬总结好的文章&#xff1a; 这里附上大…

修改MTU值解决Linux下运行top命令卡死问题

上周明月的Linux服务器上运行top命令总是莫名的出现卡死现象&#xff0c;甚至是CtrlC都无法终止进程&#xff0c;今天终于抽空找到了解决办法&#xff0c;原来是需要修改Linux的MTU值&#xff0c;将服务器操作系统数据包调小&#xff0c;加上VxLAN数据包小于1500即可。 top命令…