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;

 @Testpublic 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 {@Testpublic 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 */@Testpublic void test(){String str = true + "";System.out.println(str);String str2 = String.valueOf(1);System.out.println(str2);}/* String 转为其他 */@Testpublic void test2(){int i = Integer.parseInt(String.valueOf(1));System.out.println(i);boolean b = Boolean.parseBoolean("true");System.out.println(b);}@Testpublic void test3(){Integer m = 127;Integer n = 127;System.out.println(m == n); //trueInteger j = 128;Integer k = 128;System.out.println(j == k); //false}@Testpublic void test4(){Integer m = 1000;double d = 1000;int n = 1000;System.out.println(m == n); //trueSystem.out.println(m == d); //trueSystem.out.println(n == d); //true}@Testpublic void test5(){Object o1 = true ? new Integer(1) : new Double(1);System.out.println(o1); // 1.0Object 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、见名知意;

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程-写入读取文件,使用同步逻辑

在一个进程中&#xff0c;创建一个子线程。 主线程负责:向文件中写入数据 子线程负责:从文件中读取数据 要求使用线程的同步逻辑&#xff0c;保证一定在主线程向文件中写入数据成功之后&#xff0c;子线程才开始运行&#xff0c;去读取文件中的数据 #include <stdio.h> …

mysql 细分

索引选择性 索引列的唯一值数量 / 表中的总行数 mysql如何优化-CSDN博客 批量问题 批处理默认是逐条发送 SQL 到数据库的&#xff0c;没有充分利用数据库提供的原生批处理能力&#xff0c;需要额外的配置来启用真正的批处理支持&#xff0c;如使用ExecutorType.BATCH 自定…

JINGWHALE 虚拟现实物质与空间理论 —— 全息世界

JINGWHALE 对此论文相关未知以及已知概念、定理、公式、图片等内容的感悟、分析、创新、创造等拥有作品著作权。未经 JINGWHALE 授权&#xff0c;禁止转载与商业使用。 一、虚拟现实物质与空间理论 物质是由离散的奇点JING粒子&#xff0c;依据不同的维度粒度&#xff0c;通过…

[机器学习-03] Scikit-Learn机器学习工具包学习指南:主要功能与用法解析

&#x1f3a9; 欢迎来到技术探索的奇幻世界&#x1f468;‍&#x1f4bb; &#x1f4dc; 个人主页&#xff1a;一伦明悦-CSDN博客 ✍&#x1f3fb; 作者简介&#xff1a; C软件开发、Python机器学习爱好者 &#x1f5e3;️ 互动与支持&#xff1a;&#x1f4ac;评论 &…

技术速递|Python in Visual Studio Code 2024年5月发布

排版&#xff1a;Alan Wang 我们很高兴地宣布 Visual Studio Code 的 Python 和 Jupyter 扩展将于 2024 年 5 月发布&#xff01; 此版本包括以下公告&#xff1a; “Implement all inherited abstract classes”代码操作新的自动缩进设置Debugpy 从 Python 扩展中删除&#…

【知识碎片】2024_05_10

每日代码 至少是其他数两倍的最大数 . - 力扣&#xff08;LeetCode&#xff09; int dominantIndex(int* nums, int numsSize) {int max_num 0;int next_max 0;int pos 0;for(int i 0; i < numsSize; i){if(nums[i] > max_num) {pos i;next_max max_num;max_num…

OpenCompass大模型评估

作业链接&#xff1a; Tutorial/opencompass/homework.md at camp2 InternLM/Tutorial GitHub 项目链接&#xff1a; GitHub - open-compass/opencompass: OpenCompass is an LLM evaluation platform, supporting a wide range of models (Llama3, Mistral, InternLM2,GPT-…

C++随手写一个打字练习软件TL(TypeLetters)附原码

C随手写一个打字练习软件TL&#xff08;TypeLetters&#xff09;附原码 说明 软件名称&#xff1a;TL&#xff08;TypeLetters&#xff09; 开发语言&#xff1a;C 适合人群&#xff1a;零基础小白或C学习者 软件功能&#xff1a;打字练习软件TL&#xff08;TypeLetters&#…

opencv绘制灰度直方图-------c++

灰度直方图 cv::Mat opencvTool::calculateHistogram(const cv::Mat& image) {// 如果输入图像尚未处于灰度级&#xff0c;请将其转换为灰度级cv::Mat grayscale_image;if (image.channels() > 1){cv::cvtColor(image, grayscale_image, cv::COLOR_BGR2GRAY);}else{gra…

【GlobalMapper精品教程】078:计算点的平面(经纬度)坐标、面状数据的周长面积

文章目录 一、加载数据二、计算点的坐标三、计算面状数据的周长面积一、加载数据 在点状图层上右键,编辑属性。 属性表如下所示,可以看到,并没有点的经纬度或者平面坐标。 二、计算点的坐标 选择所有点→右键→属性样式功能→向选定的要素添加坐标边界功能。

QT切换控件布局

1、切换前垂直布局 2、切换后水平布局 3、关键代码 qDebug() << "开始切换布局";QWidget *widget centralWidget();QLayout *layout widget->layout();if(layout){while(layout->count()){QLayoutItem *item layout->takeAt(0);if(item->layout…

探索计算之美:HTML CSS 计算器案例

本次案例是通过HTML和CSS&#xff0c;我们可以为计算器赋予独特的外观和功能&#xff1b; 在这个计算器中&#xff0c;你将会发现&#xff1a; 简洁清晰的界面设计&#xff0c;使用户能够轻松输入和查看计算结果。利用HTML构建的结构&#xff0c;确保页面具有良好的可访问性和…