热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

关键字、常量、变量、数据类型、标识符、类型转换(Java基础语法01)

内容介绍Java语言背景介绍【了解】Java开发环境搭建(必掌握[配置])JDK的下载和安装,环境变量的配置HelloWorld案例(必掌握[练习])【java开发的

内容介绍


  • Java语言背景介绍【了解】
  • Java开发环境搭建 (必掌握[配置]) JDK的下载和安装,环境变量的配置
  • HelloWorld案例 (必掌握[练习])【java开发的三个步骤】
  • 注释,关键字,常量,数据类型,变量,标识符 【Java的基本语法,重点】
  • 类型转换【难点】




学习目标

1. 能够说出Java语言的跨平台原理
2. 能够独立下载并安装JDK
3. 能够独立配置path环境变量
4. 能够独立编写HelloWorld案例并编译执行
5. 能够说出Java中的8种基本数据类型
6. 能够定义基本数据类型的变量并使用变量名输出
7. 能够说出标识符的命名规则
8. 能够说出基本数据类型之间相互转换的规则

具体内容


1. Java语言发展史


  • Java语言是由谁, 在哪家公司开发的?

由詹姆斯高斯林在SUN公司开发出来的,后来SUN被Oracle公司收购!计算机语言:【计算机内部流通数据使用的语言】中国人使用的汉语,但是计算机它不能识别的,它有自己的语句,要想我们(人)的一些需求能够在计算机中得以实现,那么就必须使用计算机能够识别的语言(所有数据在计算机中存储的都是以0或者1来实现的),我们可以使用一些开发语言(C、C++、Java)来实现转换(计算机能够识别的二进制)

  • Java语言的发展史?

Java语言从1994年开始研发,与次年(1995年)投入市场使用【发布的版本为1.0】。后续不断的进行更新(1.1,1.2,。。。)但是在1.5版本,由于更新力度比较大(具有里程碑意义!),更名为5.0。还有一个非常重要的版本8.0版本。我们采用的是8.0版本!【市场主流的版本】

  • Java语言的平台划分?【了解即可】

Java分为三大块&#xff1a;JavaSE&#xff1a;它是整个Java语言的基石(它里面有Java的基本语法<这门语言的规则>)【桌面开发(坦克大战、斗地主、贪吃蛇)】JavaME&#xff1a;移动端开发(手机、平板)【塞班系统】JavaEE&#xff1a;企业级应用开发(互联网电商、OA系统、物流系统) 【服务器端】

2. Java语言的跨平台原理【重要】★


  • 什么是跨平台?

平台&#xff1a;操作系统windows系统、Mac os系统、Linux系统

  • 跨平台的原理是?

借助不同版的jvm(虚拟机软件)&#xff0c;在不同的操作系统中运行&#xff01;要想java程序在window系统中运行&#xff0c;我们只需要下载windows版的jvm即可要想java程序在mac os系统中运行&#xff0c;我们只需要下载mac os版的jvm即可要想java程序在Linux系统中运行&#xff0c;我们只需要下载Linux版的jvm即可

  • JVM本身可以跨平台吗?

不可以。

在这里插入图片描述


3. JRE和JDK 【重要】


  • 什么是JDK?
  • 什么是JRE?
  • 什么是JVM?
  • 三者之间的关系是什么?

* JVM它是一款软件&#xff01;我们称之为虚拟机&#xff0c;就是我们编写的Java程序运行的位置。【java程序最终在jvm里面运行】其它&#xff0c;光有jvm是不够的&#xff01;实现一个庞大的功能&#xff0c;需要使用第三方提供的类(库) 【类是Java中的一个基本组织单位】* JRE它里面包含了 JVM 和一些核心的类库。 【java运行环境】运行环境&#xff1a;使用别人开发好的程序是可以的&#xff0c;但是不能自己开发。* JDK它里面包含了 jre 和 开发工具包(javac.exe和java.exe)结论&#xff1a;我们只要有jdk&#xff0c;就可以进行java开发了(啥都有了)* 三者的关系JDK>JRE>JVM

4. JDK的下载和安装 ★


  • A:JDK的下载

官网&#xff1a;http://www.oracle.com Oracle公司的官网会不断的更新主页面&#xff01;

  • B:JDK的安装


    我们这里使用JDK8&#xff0c;安装是傻瓜式的(下一步&#xff0c;下一步&#xff01;) &#61;&#61;&#61;&#61;&#61;&#61;&#61;>>>安装路径不要有中文和特殊符号&#xff01;D&#xff1a;【不要是系统盘】Developjdk8NotePad&#43;&#43;...jdk8在安装的过程中&#xff0c;出现了一个界面 &#xff0c;千万不要关闭&#xff01; 按照它默认的路径安装即可&#xff01;&#xff01;&#xff01;&#xff01;

  • C:验证安装是否成功

    进入安装JDK的bin目录&#xff0c;在当期目录的地址位置输入cmd回车&#xff0c;在弹出的DOS窗口里面分别输入javac回车和java回车&#xff0c;能够在屏幕看到一些内容&#xff0c;说明JDK安装成功&#xff01;

  • JDK目录结构说明

目录名称 说明
bin 该路径下存放了JDK的各种工具命令。javac和java就放在这个目录
------------------------------------------------------------------------
conf 该路径下存放了JDK的相关配置文件
include 该路径下存放了一些平台特定的头文件
jmods 该路径下存放了JDK的各种模块
legal 该路径下存放了JDK各模块的授权文档
lib 该路径下存放了JDK工具的一些补充JAR包

  • 5分钟时间自己操作一遍

JDK的安装说明&#xff1a;注意目录要求&#xff01;

5. 常用的DOS命令


  • 为什么要学习命令提示符?
  • 如何打开命令提示符(DOS窗口)?

* 为什么要学习命令提示符?后面我们要使用javac.exe和java.exe开发工具&#xff0c;就必须进入指定的目录&#xff01;* 如何打开命令提示符(DOS窗口)?win&#43;r(一起按)&#xff0c; 输入框中输入 cmd&#xff0c;然后回车 * dos常用命令① 盘符切换&#xff1a; 直接输入盘符名称:&#43;回车 【盘符名称大小写均可】② 查看当前盘符(目录)里面的内容&#xff1a;dir③ 目录切换&#xff1a; cd 目录结构D:\Develop\jdk\jdk1.8.0_172\bin> 【你也可以一次进入一个目录&#xff0c;执行多次cd命令】④ 返回根目录&#xff1a;cd / 【可以从任意目录直接返回根目录】⑤ 返回上一级目录&#xff1a; cd ..⑥ 清屏目录&#xff1a; cls

在按下win&#43;r之后输入的&#xff1a;1. calc -> 打开计算器2. notepad -> 打开记事本

6. Path环境变量的配置 ★


  • 为什么要配置环境变量?
  • 如何配置?

总结:
1. 为什么要配置环境变量&#xff1f; 正常情况&#xff0c;我们想要使用javac.exe和java.exe开发工具&#xff0c;必须进入指定的目录 D:\Develop\jdk\jdk1.8.0_172\bin为了方便开发&#xff0c;我们不希望每次都进入这个目录&#xff0c;那么可以通过环境变量的配置实现在任意目录都可以直接使用这2个开发工具。2. 如何配置&#xff1f;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置环境过程中可能出现的问题&#xff1a;
1. 配置了环境变量&#xff0c;在DOS窗口执行javac命令不好使&#xff1f;可能是你在配置环境变量之前打开了窗口&#xff0c;关闭窗口重新打开一个&#xff01;2. 环境变量失效问题Win10, 重启电脑之后, 可能就会失效解决方案: 找到环境变量的path, 进入编辑文本, 不需要修改任何内容, 直接确定即可Win10的同学&#xff0c;建议将%JAVA_HOME%\bin 上移到顶端一个电脑可以安装多个版本的JDK&#xff0c;最终使用哪一个&#xff0c;取决于环境变量的配置&#xff01;

7. HelloWorld案例 ★


  • Java程序开发运行的基本步骤是什么?

* 创建Java文件新建一个文本文档&#xff0c;修改扩展名为.java &#61;&#61;&#61;&#61;&#61;>>> HelloWorld.java* 编写java源代码 (程序员<人>能够看懂的)【机器不懂】以.java结尾的文件&#xff01; 【记事本中完成&#xff0c;电脑自带】* 编译java源代码&#xff0c;使其让计算机(jvm)能够识别的字节码文件以.class结尾的文件&#xff01; 【借助javac.exe工具】例如&#xff1a;javac HelloWorld.java* 运行字节码文件借助java.exe工具&#xff0c;运行程序&#xff01;例如&#xff1a;java HelloWorld

  • HelloWorld的基本书写 (暂时记忆)

public class HelloWorld{public static void main(String[] args){System.out.print("Hello World!");}
}

  • 编写前的注意事项

win10系统特别注意&#xff1a;系统默认是将所有文件的扩展名隐藏了&#xff0c;所以务必将文件的扩展名的复选框勾选【文件的扩展名就不会是。java,而是.txt】

  • 10分钟时间练习
    * 使用java程序&#xff0c;在屏幕上输出

你不努力&#xff0c;谁也给不了你想要的生活&#xff01;
将来的你一定感谢现在拼命的自己&#xff01;

8. HelloWorld案例常见问题


  • 总结


1.文件名与类名不一致【HelloWorld.java class Helloworld】


在这里插入图片描述


2.单词拼写错误 【void 写成了 viod或者 String写成了string】


在这里插入图片描述

在这里插入图片描述


3.main方法书写错误 将main写成了mian


在这里插入图片描述


4.类名(第三方类库)书写错误 【System写成了system】


在这里插入图片描述


5.代码结束未写分号


在这里插入图片描述


6.使用了中文的符号
在这里插入图片描述


说明&#xff1a;★ BUG&#xff1a;编写的程序存在问题&#xff0c;不能正常执行&#xff01;★ 以后我们写java代码&#xff0c;每行代码结束&#xff0c;都会以;为标记&#xff01; ★ 在书写代码的时候&#xff0c;我们输出中文&#xff0c;出现的结果不是预期的(没有报错)&#xff0c;可能是文件保存的时候使用的编码不正确&#xff01;★ 以后但凡更改了java源代码&#xff0c;那么之后都需要重新编译再执行&#xff01;★ println和print的区别&#xff1a;前者打印输出内容后&#xff0c;换行&#xff01;后者打印输出内容后&#xff0c;不换行&#xff01;

  • 请找出下方HelloWorld案例的错误, 并修改

public class Demo { // 类名与文件名称不一致&#xff01;public static void main(String[] args) {System.out.println("HelloWorld");}
}

9. Notepad&#43;&#43; 软件的安装和使用


  • Notepad软件安装后的设置

软件安装&#xff1a;傻瓜式的下一步下一步完成&#xff0c;建议安装目录与之前的JDK在同一级创建一个目录
设置 -> 首选项A. 新建 -> 默认语言Java -> 文件编码ANSIB. 自动完成问题&#xff1a;我们已经配置了环境变量&#xff0c;为什么在编译java文件的时候&#xff0c;还要进入指定位置&#xff1f;环境变量配置只是处理了 执行文件javac.exe和java.exe要编译哪个文件&#xff0c;是不是也要找到这个文件的位置&#xff01;

  • 5分钟时间安装并配置


10. 注释


  • 什么是注释?
  • 注释的分类?
  • HelloWorld说明

1. 什么是注释&#xff1f;对Java代码进行一些文字性的描述信息(解释代码是啥意思) 【注释是给人(程序员)看的】它是不参与程序执行的&#xff01;&#xff01;&#xff01;2. 注释的分类?单行注释&#xff1a; // 注释内容多行注释&#xff1a; /* 注释内容 */文档注释&#xff1a; /** 注释内容 */ 【了解】

/**这是一个文档注释&#xff1a;一般对类进行描述&#xff0c;我们使用文档注释这个类是我们的第一个Java程序&#xff01;class:它是一个关键字(稍后讲解)&#xff0c;它后面的内容就是一个类名HelloWorld&#xff1a;它是一个类名(类是java里面的基本组织单位&#xff0c;所有的代码都是写在类中的)
*/

public class HelloWorld{/*这是一个多行注释&#xff0c;注释的内容可以写在多行&#xff01;多行注释一般写在方法上面main&#xff1a;这是一个方法(它是Java程序运行的入口方法) 【固定写法】*/public static void main(String[] args){// 这是一个单行注释&#xff0c;注释的内容只能在当前行&#xff01;System.out.println("HelloWorld"); // 这是一条输出语句&#xff0c;输出完毕后会换行}
}

注意&#xff1a;注释的嵌套问题多行注释中不能嵌套多行注释&#xff01; 【在不清楚注释嵌套的情况下&#xff0c;就不要玩嵌套&#xff01;&#xff01;&#xff01;】

11. 关键字


  • 什么是关键字?
  • 关键字有哪些特征?

总结:
1. 什么是关键字&#xff1f;在java中被赋予特殊含义的单词(被java语言内定了)&#xff01;&#61;&#61;&#61;&#61;&#61;&#61;>>>> 后面在定义变量(为变量取名)的时候不能使用这些关键字~例如&#xff1a;public class static void 具体什么含义&#xff0c;在后续课程会陆续学习&#xff01;2. 关键字的特征&#xff1f;【如何识别关键字】① 它都是由一些小写的单词组成&#xff01;(全部都是小写字母)② 在高级记事本中是高亮显示(有特殊)我们在后续会接触到很多关键字&#xff01;我们每接触一个&#xff0c;就掌握一个&#xff01;问题: main是关键字吗?它不是关键字&#xff01;但是它的确有特殊含义&#xff0c;主方法(程序入口方法)的单词是固定的&#xff01;

12. 常量


  • 什么是常量?
  • 常量的分类有哪些?

我们编写Java程序很多时候是需要描述一些事物的特征&#xff01;(描述某位同学<姓名、年龄、身高、性别>)而在这些数据中&#xff0c;性别是固定的(一旦出生后不可更改了)&#xff01;
总结:
1. 什么是常量&#xff1f;在java程序运行过程中&#xff0c;其数值不可改变的量&#xff01;2. 常量的分类&#xff1f;字符串常量&#xff1a;标志是一对双引号&#xff01;【双引号中间可以书写任意内容(不写也行)】"HelloWorld","么么哒&#xff01;","a","&#64;",""字符常量&#xff1a;标志是一对单引号&#xff01;【单引号中间不能空着不写,而且只能出现单个字符】&#39;a&#39;,&#39;1&#39;,&#39;国&#39;,&#39;&#64;&#39; 【‘’ 这是错误的&#xff01;】整数常量&#xff1a;全部都是数字&#xff0c;不能有小数点100&#xff0c;-58小数常量&#xff1a;全部都是数字&#xff0c;有小数点3.14&#xff0c;-10.5布尔常量&#xff1a;只有2个取值(true&#xff0c;false) 【"true" 错误&#xff0c;它是一个字符串常量】空常量&#xff1a;null(只有这么一个取值) 【面向对象章节会学习到】3. 注意问题① 字符串常量&#xff0c;里面可以空着不写任何内容② 字符常量&#xff0c;不能空着不写&#xff0c;不能写多个字符(单个字母&#xff0c;单个数字&#xff0c;单个汉字都是一个字符)③ 布尔常量&#xff0c;不能加双引号④ 空常量&#xff0c;不能直接打印输出

public class Demo01{public static void main(String[] args){// 字符串常量System.out.println("$");System.out.println("itheima");System.out.println("国");System.out.println("");// 字符常量System.out.println(&#39;a&#39;);System.out.println(&#39;1&#39;);System.out.println(&#39;&#64;&#39;);System.out.println(&#39;男&#39;);System.out.println(&#39; &#39;);// 下列三种字符常量对应代码都是错误的&#xff01;// System.out.println(&#39;abc&#39;);//System.out.println(&#39;10&#39;);//System.out.println(&#39;&#39;);// 整数常量System.out.println(100);System.out.println(-58);// 小数常量System.out.println(3.14);System.out.println(-10.5);// 布尔常量&#xff1a;只有2个取值System.out.println(true);System.out.println(false);// 空常量 【不能直接打印输出】//System.out.println(null);}
}

10分钟时间练习
请在屏幕上输出一个学生的信息&#xff0c;包含姓名、性别、年龄、身高、地址。


public class Demo02{public static void main(String[] args){// 姓名(字符串常量)System.out.println("虞姬");// 性别(字符常量)System.out.println(&#39;女&#39;);// 年龄(整数常量)System.out.println(18);// 身高(单位m&#xff0c;小数常量)System.out.println(1.65);//System.out.println(1.65&#43;"米");// 地址(字符串常量)System.out.println("北京市顺义区白各庄");}
}

13. Java中的数据类型 ★


  • 为什么要有数据类型?
  • Java的基本数据类型一共分为哪些?

总结:
1. 为什么要有数据类型&#xff1f;所有的数据都是要进行存储的&#xff01;数据类型的出现就是为了让JVM合理的为数据分配合适的空间&#xff01;★★★★★【我们写的java程序在JVM中运行&#xff0c;JVM它是一款软件&#xff0c;软件运行会消耗内存】int number &#61; 100; // int类型占据4个字节空间&#xff0c;数值100可以使用byte类型存储&#xff01;byte number &#61; 100; // byte类型只占据1个字节空间在计算机中&#xff0c;存储数据的最小单元是 bit(位)&#xff0c;存储的数据都是二进制(里面只有0和1)的&#xff0c;每1个0或者1就代表一个位。在计算集中&#xff0c;存储数据的最小单位是字节byte(每8个位就成为了1个字节)&#xff0c;而显示文件的大小通常是KB或者更高的单位。1byte &#61; 8bit1KB &#61; 1024 byte1MB &#61; 1024 KB1GB &#61; 1024 MB1TB &#61; 1024 GB在前面我们定义了字符串常量、布尔常量等等它在内存中都会占据空间2. 数据类型分类 【非常重要&#xff01;】★ 基本数据类型&#xff1a;四类八种 【今天的重点】整型&#xff1a;byte 1个字节short 2个字节 int 4个字节long 8个字节浮点型&#xff1a;float 4个字节double 8个字节字符型&#xff1a;char 2个字节布尔型&#xff1a;boolean 1个字节 ★ 引用数据类型&#xff1a;数组、类、接口 【后续课程陆续学习】字符&#39;国&#39;占据多少位&#xff1f;16位&#xff01; 【字符占据2个字节&#xff0c;每个字节8个位】注意&#xff1a;类型的取值范围与占据空间的大小无关的&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;byte类型的最大取值 127在没有特殊说明的情况下&#xff0c;整数默认的是int类型&#xff0c;浮点数默认的是double类型

在这里插入图片描述


14. 变量 ★


  • 什么是变量?
  • 变量的格式是?
  • 变量的作用?

总结:
1. 什么是变量&#xff1f;变量&#xff1a;在程序运行过程中&#xff0c;值可以改变的量&#xff0c;本质是内存中一块区域(java程序都是在内存中运行的&#xff01;)变量组成&#xff1a; 数据类型 变量名称 变量值 三部分构成&#xff01;2. 变量的定义格式格式1&#xff1a;先定义变量&#xff0c;后赋值数据类型 变量名称;变量名称 &#61; 变量值;例如&#xff1a; int number;number &#61; 100;格式2&#xff1a;在定义变量的同时&#xff0c;直接赋值数据类型 变量名称 &#61; 变量值;例如&#xff1a;int number &#61; 100;简而言之&#xff1a;byte/short/int/long/float/double/char/boolean a;a &#61; 值;【根据不同的类型赋不同的值】 byte/short/int/long/float/double/char/boolean a &#61; 值;【根据不同的类型赋不同的值】 3. 变量的使用获取变量的值&#xff1a;格式&#xff1a;变量 [可以进行输出]System.out.println(number);修改变量的值&#xff1a;格式&#xff1a;变量名称 &#61; 新的变量值;number &#61; 200;4. 变量的作用能够非常方便修改程序中那些需要变动的值&#xff01;System.out.println(true);System.out.println(true);System.out.println(true);System.out.println(true);System.out.println(true);上面使用常量&#xff0c;要修改需要全部挨个完成&#xff0c;如果使用变量会非常方便boolean flag &#61; true;System.out.println(flag);System.out.println(flag);System.out.println(flag);System.out.println(flag);System.out.println(flag);// 如果要将输出到数据弄成false使用变量&#xff0c;我们只需要将 flag &#61; false;// 代码演示&#xff1a;
public class VariableDemo{public static void main(String[] args){// 定义变量&#xff08;先定义后赋值&#xff09;boolean flag; // 定义变量&#xff0c;没有赋值的flag &#61; true; // 为变量赋值// 定义变量(在定义的同时直接赋值)char ch &#61; &#39;A&#39;;// 获取变量的值(打印输出)System.out.println(flag);System.out.println(ch);// 修改变量的值flag &#61; false;ch &#61; &#39;牛&#39;;System.out.println(flag);System.out.println(ch);}}

  • 变量的扩展讲解:

1. 变量可以先定义, 再赋值.也可以在定义的时候直接赋值&#xff01;
2. 一条语句可以定义n个变量.【能看懂即可&#xff0c;一般开发不会使用&#xff0c;但是面试会出现&#xff01;】

public class VariableDemo2{public static void main(String[] args){ // 在一个语句中定义多个变量(未赋值)int x,y,z; // 一次性定义了3个变量&#xff0c;没有赋值// 为变量赋值x &#61; 10;y &#61; 20;z &#61; 30;// 使用变量System.out.println(x);System.out.println(y);System.out.println(z);System.out.println("-----------------");// 在一个语句中定义多个变量同时赋值int m&#61;10,n&#61;20,p&#61;30;// 使用变量System.out.println(m);System.out.println(n);System.out.println(p);}}

  • 10分钟练习: 请分别定义byte、short、int、double、char以及boolean这6种类型的变量&#xff0c;并将值输出到屏幕上。

/**请分别定义byte、short、int、double、char以及boolean这6种类型的变量&#xff0c;并将值输出到屏幕上。
*/

public class VariableDemo3{public static void main(String[] args){// 定义byte类型的变量byte a &#61; 10;System.out.println(a);// 定义short类型的变量short b &#61; 20;System.out.println(b);// 定义int类型int c &#61; 30;System.out.println(c);// 定义double类型的变量double d &#61; 12.03;System.out.println(d);// 定义char类型的变量char e &#61; &#39;a&#39;;System.out.println(e);// 定义boolean类型的变量boolean f &#61; true; System.out.println(f);}
}

15. 变量的注意事项


  • 总结:

1. 定义变量的时候(定义在方法中)&#xff0c;需要先赋值&#xff0c;后使用 【定义在方法中变量我们称之为局部变量】public static void main(String[] args){// 定义变量int a; // 定义了变量&#xff0c;没有赋值System.out.println(a); // 错误: 可能尚未初始化变量a //【执行javac命令出现的错误&#xff0c;我们称之为编译报错&#xff1b;执行java命令报错&#xff0c;我们称之为运行时报错&#xff01;】}2. 变量在定义的时候&#xff0c;变量名称重复 public static void main(String[] args){// 定义变量int a; // 定义了变量&#xff0c;没有赋值char a &#61; &#39;a&#39;; // 在定义一个变量 (错误: 已在方法 main(String[])中定义了变量 a)&#xff0c;简而言之&#xff0c;变量名称不允许重复&#xff01;}3. 定义long类型的数据时&#xff0c;建议在后面添加一个L//long b &#61; 10000000; // 右侧是一个int类型的数值(整数默认是int类型&#xff0c;当前的数值没有超过int类型的最大取值)//long b &#61; 100000000000; // 右侧是一个int类型的数值(整数默认是int类型&#xff0c;当前数值超过了int类型的最大取值&#xff0c;所以会报错&#xff01;)long b &#61; 100000000000L; // 加了L说明数值是一个long类型的&#xff0c;没有超过long类型的最大取值&#xff0c;代码正确&#xff01;4. 定义float类型的数据&#xff0c;后面添加F//float d &#61; 3.15; // 小数默认是double,你将这个double类型的数值赋值给一个float类型的变量&#xff0c;出现了不兼容类型的错误 float d &#61; 3.15F; // 明确指定这个小数是一个float类型

16. 标识符 ★


  • 什么是标识符?
  • 标识符的组成规则?

总结: 【学习标识符主要注意2个问题&#xff1a;它的规则&#xff1f;能够识别标识符是否符合要求&#xff01;】
1. 什么是标识符&#xff1f;就是我们为 类名、变量名称、方法名称取名字&#xff01;都是自定义&#xff01;2. 标识符的组成只能是 数字(0-9)、字母(a-z或者A-Z)、下划线(_)、美元符号($)

标识符的命名规范
1. 硬性要求&#xff1a;★ 不能以数字开头★ 不能是关键字(关键字已经被内定了&#xff0c;赋予了特殊的含义&#xff01;)★ 严格区分大小写的★ 只能是 数字(0-9)、字母(a-z或者A-Z)、下划线(_)、美元符号($) 2. 江湖规矩(软性要求)★ 见名知意&#xff0c;别人一看到类名就知道这个类是干啥的&#xff0c;比如&#xff1a;public class Student{} &#61;&#61;&#61;&#61;>>> 这个类是用于描述学生信息的针对类名&#xff1a;大驼峰类名&#xff1a;描述朋友一个单词&#xff1a;单词的首字母大写&#xff0c;比如&#xff1a;Friend多个单词&#xff1a;每个单词的首字母都要大写&#xff1a;比如&#xff0c;男朋友 BoyFriend针对变量名称、方法名称&#xff1a;小驼峰变量/方法名称&#xff1a;一个单词&#xff1a;每个字母都是小写 int number &#61; 10;多个单词&#xff1a;第一个单词的首字母小写&#xff0c;其它的单词的首字母都大写 int oddNumber &#61; 9;

17. 类型转换 ★


  • 类型转换的分类有?
  • (隐式)转换指的是?
  • (强制)转换指的是?

总结:1. 类型转换分为 自动类型转换和强制类型转换2. 自动类型转换(我们不用手动处理)将小范围的数值赋值给大范围的变量&#xff01;只要遵循范围的规则&#xff1a;【类型转换都是数字型的&#xff01;布尔类型不参与类型转换&#xff01;】byte--->>short--->>>int--->>long--->>float--->>doublechar--->>>int--->>long--->>float--->>double例如&#xff1a;long number &#61; 100; // 将小范围的数值100(int类型)&#xff0c;赋值给大范围(long类型)的变量numberbyte b &#61; 100; // 代码也没有问题&#xff0c;比较特殊(还有short)&#xff0c;只要数值没有超过byte的最大取值范围即可&#xff01;3. 强制类型转换(手动处理)将大范围的数值赋值给小范围的变量处理的格式&#xff1a; 小范围数据类型 变量名称 &#61; (小范围的数据类型)大范围数值;例如&#xff1a;long c &#61; (long)3.15; // 小数默认是double类型&#xff0c;将大范围的数值赋值给小范围的变量&#xff0c;必须强转&#xff01;System.out.println(c); // 3 强制转换存在2个问题&#xff1a;丢失精度&#xff1a;大范围的浮点数转成小范围的整数long c &#61; (long)3.15; // 小数默认是double类型&#xff0c;将大范围的数值赋值给小范围的变量&#xff0c;必须强转&#xff01;System.out.println(c); // 3 数据溢出&#xff1a;大范围的整数转成小范围的整数 【有一个水桶&#xff0c;里面有10L水&#xff0c;然后倒入一个容量只有1L的水杯】byte d &#61; (byte)200L;System.out.println(d); // -56★ 强制类型转换风险极大&#xff0c;慎用&#xff01;&#xff01;&#xff01;

面试题&#xff1a;问题: 下面的程序是否有问题&#xff0c;如果有问题&#xff0c;请指出并说明理由(必须掌握!!!)

​ byte b1 &#61; 3;
​ byte b2 &#61; 4;
​ byte b3 &#61; b1 &#43; b2;


错误原因: 因为所有整数默认都是int类型, 所以b1和b2相加的时候, 会先将自己提升为int类型两个int相加的结果还是int, 将int结果赋值给byte, 必须加入强转
解决方案: byte b3 &#61; (byte)(b1 &#43; b2);

byte b &#61; 3 &#43; 4; // 这句话不会出现编译错误原因是3和4是两个常量, Java有常量优化机制, 在编译的时候就会将3和4计算出一个结果并自动判断结果是否在byte的取值范围内.

double d &#61; 20;System.out.println(d); // 没有&#xff0c;自动转换&#xff0c;结果为 20.0long l &#61; 10; System.out.println(l);long l2 &#61; 12345678998765432L;

题&#xff1a;
丢失精度&#xff1a;大范围的浮点数转成小范围的整数
long c &#61; (long)3.15; // 小数默认是double类型&#xff0c;将大范围的数值赋值给小范围的变量&#xff0c;必须强转&#xff01;
System.out.println©; // 3
数据溢出&#xff1a;大范围的整数转成小范围的整数 【有一个水桶&#xff0c;里面有10L水&#xff0c;然后倒入一个容量只有1L的水杯】
byte d &#61; (byte)200L;
System.out.println(d); // -56

★ 强制类型转换风险极大&#xff0c;慎用&#xff01;&#xff01;&#xff01;


> 面试题&#xff1a;问题: 下面的程序是否有问题&#xff0c;如果有问题&#xff0c;请指出并说明理由(必须掌握!!!!)
>
> ​ byte b1 &#61; 3;
> ​ byte b2 &#61; 4;
> ​ byte b3 &#61; b1 &#43; b2;&#96;&#96;&#96;markdown
错误原因: 因为所有整数默认都是int类型, 所以b1和b2相加的时候, 会先将自己提升为int类型两个int相加的结果还是int, 将int结果赋值给byte, 必须加入强转
解决方案: byte b3 &#61; (byte)(b1 &#43; b2);

byte b &#61; 3 &#43; 4; // 这句话不会出现编译错误原因是3和4是两个常量, Java有常量优化机制, 在编译的时候就会将3和4计算出一个结果并自动判断结果是否在byte的取值范围内.

double d &#61; 20;System.out.println(d); // 没有&#xff0c;自动转换&#xff0c;结果为 20.0long l &#61; 10; System.out.println(l);long l2 &#61; 12345678998765432L;

推荐阅读
  • 本文详细介绍了如何在Python3环境中配置Appium1.4.6,并指导如何连接模拟器进行自动化测试。通过本文,您将了解从环境搭建到模拟器连接的完整流程。 ... [详细]
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了如何解压并安装MySQL集群压缩包,创建用户和组,初始化数据库,配置环境变量,并启动相关服务。此外,还提供了详细的命令行操作步骤和常见问题的解决方案。 ... [详细]
  • 软件工程课堂测试2
    要做一个简单的保存网页界面,首先用jsp写出保存界面,本次界面比较简单,首先是三个提示语,后面是三个输入框,然 ... [详细]
  • 本文详细介绍了如何正确配置Java环境变量PATH,以确保JDK安装完成后能够正常运行。文章不仅涵盖了基本的环境变量设置步骤,还提供了针对不同操作系统下的具体操作指南。 ... [详细]
  • 本文将详细介绍通过CAS(Central Authentication Service)实现单点登录的原理和步骤。CAS由耶鲁大学开发,旨在为多应用系统提供统一的身份认证服务。文中不仅涵盖了CAS的基本架构,还提供了具体的配置实例,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Ubuntu GamePack:专为游戏爱好者打造的Linux发行版
    随着Linux系统在游戏领域的应用越来越广泛,许多Linux用户开始寻求在自己的系统上畅玩游戏的方法。UALinux,一家致力于推广GNU/Linux使用的乌克兰公司,推出了基于Ubuntu 16.04的Ubuntu GamePack,旨在为Linux用户提供一个游戏友好型的操作环境。 ... [详细]
  • js常用方法(1)startWithJava代码varstartsWithfunction(str,regex){if(regexundefined||strundefined|| ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
  • MapReduce原理是怎么剖析的
    这期内容当中小编将会给大家带来有关MapReduce原理是怎么剖析的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1 ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • Java 架构:深入理解 JDK 动态代理机制
    代理模式是 Java 中常用的设计模式之一,其核心在于代理类与委托类共享相同的接口。代理类主要用于为委托类提供预处理、过滤、转发及后处理等功能,以增强或改变原有功能的行为。 ... [详细]
  • 大数据基础:JavaSE_day06 ... [详细]
author-avatar
狂风DKC想毕业321
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有