【Java从入门到头秃专栏 】(二) 注释 数据类型 变量 常量 关键字 标识符 运算符 输入输出

   目录

 1 注释

 2 数据类型

 3 变量与常量

 4 关键字、标识符

 5 运算符

 6 键入值、输出值


 1 注释

        注释就是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便大家更加容易理解程序。注释虽然写在程序中,但是并不参与程序的执行,javac.exe程序在将.java文件编译成.class文件时将不再保留注释。

注释的三种格式:

  • 单行注释:// 注释内容
  • 多行注释:/*  注释内容 */
  • 文档注释:/**   注释内容   */

IDEA中相关的快捷键:

  • 对选中的代码行进行单行注释,默认为光标所在代码行进行单行注释:Ctrl + /
  • 对选中的代码行进行多行注释,默认在光标处添加一个多行注释:Ctrl + Shift + /

上述快捷键按单数次是加注释,双数次是解开注释。

 2 数据类型

        Java是一种强类型语言,这就意味着必须为每一个变量声明一种类型。数据类型分为基本数据类型和引用数据类型,基本数据类型又分为4类8种。

2.1 基本数据类型

     2.1.1 整型

类型

占用字节数

取值范围
byte1-128 ~ 127
short2-32768 ~ 32767
int4-2147483648 ~ 2147483648
long8-9223372036854775808 ~ 9223372036854775808

整型数默认为int型,所以在变量初始化的时候,长整型数值要有一个后缀L或者l表示该数值是长整型,eg:4000000L即是一个长整型数值。

        在Java中不同进制整型数据的书写格式不同,二进制以0B或者0b开头,八进制以0开头,十六进制以0X或者0x开头,eg:97的二进制写法0B01100001、八进制写法0141、十六进制写法0x61

      2.2.2 浮点类型

类型占用字节数精度
float46 ~ 7位有效数字
double815位有效数字

浮点型数据默认为double型,所以在变量初始化的时候,单精度数值要有一个后缀F或者f表示该数值是单精度的,eg:99.99F。 

        浮点类型用于表示有小数部分的数值,double的精度大概是float的两倍,所以称float为单精度数double为双精度数。实际上,只有很少的情况适合使用float类型,eg:需要一个单精度的库,或者存储的数据量很大的时候。

      2.3.3 字符型

类型占用字节数取值范围
char20 ~ 65535

        char型的数据使用时都要用单引号括起来,eg:'A'。除了常见的char型数据,还有一些特殊的转义字符,比如:\b表示退格、\t表示键盘的tab键、\n表示换行操作、\r表示键盘的enter键、\u加4个十六进制数表示一个Unicode编码值、\'表示一个单引号、\"表示一个双引号、\\表示反转义

  

      2.4.4 布尔类型

类型占用字节数取值范围
boolean1true 、 false

        boolean型只有两个取值范围用于判断逻辑条件,那就是true和false。整型值和boolean值之间不能进行相互转换。在C或者其他一些程序语言中,非0的值表示true即真,0表示false即假,但是在Java中boolean只有true和false两种取值表示真假。

   

2.2 类型转换

    2.2.1 自动类型转换

        类型范围小的变量可以直接赋值给类型范围大的变量,char转换成int是将其对应的ASCII码赋给int型变量。实线箭头表示无损失转换,虚线箭头的转换可能伴随有精度损失,不管是什么箭头都具有传递性,即不管通过几个箭头能指向的地方都可以进行自动类型转换。

   

      2.2.2 表达式中的自动类型转换

        在表达式(用一个二元运算符连接两个值)中,小范围的变量会自动转换成较大范围的类型进行计算。

        😏表达式的最终结果由表达式中的最高类型决定,比如说int + long = long、long + float = float……

        😣byte、short、char都是直接转换成int进行运算,也就是说byte + byte = int、short + short = int……

    

    2.2.3 强制类型转换(cast)

        类型范围小的变量不可以直接赋值给类型范围大的变量,除非使用强制类型转换,否则会报错。强制类型转换的格式如下:

大数据类型 变量1 = (小数据类型) 变量2或者是数据;

        🤐如果在强制转换的过程中,数值大小超过小数据类型的取值范围的话,结果将会被截断成两个完全不同的值,eg:(byte)1500 = -36,原理如下:

         🥱浮点型强转为整型,直接丢掉小数部分,只保留整数部分,而并不是结果四舍五入。

 3 变量与常量

        变量就是一个用来存储数据的内存区域,且里面存储的数据可以发生改变,常量就是存储的数据不能发生改变的变量。

变量统一使用 lowerCamelCase 风格,也就是常说的驼峰命名中的小驼峰,eg:femaleNum。

常量名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长,eg:MAX_STOCK_COUNT。

  3.1 变量的声明与赋值

声明并初始化一个变量

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

当然在还没想好一个变量的初始值大小的时候,可以先声明变量再对变量进行赋值操作。在Java中,变量的声明要尽可能的靠近变量的第一次使用或者赋值的地方。

数据类型 变量名;

变量名 = 变量值;

Java中允许一次声明多个变量,但是不提倡这么使用,逐一声明更能提高程序的可读性

数据类型 变量名,变量名,变量名……;

变量使用的注意事项:

  • 变量必须先声明才能使用
  • 变量声明后只能存储声明时的数据类型,其他不行
  • 变量的有效范围是从定义的位置开始到“}”截止,在同一个范围内定义的变量命名不能相同。
  • 定义变量的时候可以没有初始值,但是使用时变量必须是已经初始化过的,也就是说使用时的变量必须是有值的

  

   3.2 常量

        常量在main方法的外部定义,因此在同一个类的其他地方中也可以使用这个常量,如果这个常量还被声明为public的话,其他类的方法也能使用它。

常量的声明并初始化一般采用下列格式:

public static final 数据类型 常量名 = 初始值; 

 4 关键字、标识符

        关键字是Java中自己保留的一些单词,作为特殊功能使用,比如数据类型的int、short、long、byte、double……一些特殊含义的单词class、const、if、for、else……保留字有很多,但是不需要刻意去记,随着学习的深入就可以自己总结一堆的关键字。

        标识符就是有一些字符、符号组合起来的名称,用于给类、方法、变量等起名的规则。标识符规则如下:

  1. Java变量命名只能使用字母数字下划线(_)美元符号($)组成。
  2. 变量名不能以数字开头,而且使用$开头虽然没错但是不推荐使用。
  3. 变量名可以和java关键字一样,但是可以包含关键字。
  4. 区分大小写(大小写不同代表不同的标识符)

  

计算机中的数据存储形式:

数字变量在计算机中的存储形式:二进制

字符变量在计算机中存储的形式:ASCII码

图片、音视频在计算机中的存储:二进制文件 

5 运算符

    5.1  算术运算符

符号作用
+
-
*
/除(在Java中两个整数相处的结果还是整数)
%求余数(又叫取模运算)

         “+”符号不止可以作加法运算符,在一定条件下还可以作字符串的连接符号,当“+”两边都是数值的时候就是加起来得到一个值,“+”两边无法运算的时候就连接字符串。其运算如下: 

   

    5.2 自增自减运算符

        自增自减运算符是对变量而言的一种运算符,其他像字面量和常量就不能使用自增自减运算符。自增符号就是++,自减符号就是-- ,并且符号放在变量左右的位置不同其运算结果也会不同。符号在变量左面表示先加减1再用,符号在变量右面表示先用再加减1

   

    5.3 赋值运算符

赋值运算符默认包含了一步强制转换,并不会像普通的表达式一样运算结果由最大的类型决定。

算式等价
a = ba = b
a += ba = (a的数据类型)a + b
a -= ba = (a的数据类型)a - b
a *= ba = (a的数据类型)a * b
a /= ba = (a的数据类型)a / b
a %= ba = (a的数据类型)a % b

   5.4 条件运算符

条件运算符是对数据进行条件判断的符号,最终会返回一个比较的布尔值结果也就是true或者false

符号说明
==判断是否左右相等
!=判断是否左右不相等
>判断是否左大于右
>=判断是否左大于等于右
<判断是否左小于右
<=判断是否左小于等于右

   

  5.5 位运算符

       5.5.1 逻辑运算符

符号名称说明
&逻辑与(并且)全真为真,有假则假
|逻辑或(或者)全假为假,有真则真
!逻辑非取反操作,非真为假,非假为真
^逻辑异或相同为假,不同为真

除以上逻辑运算符外,还有两种短路逻辑运算符&&(短路与)和||(短路或),它们俩的运算结果和逻辑与、逻辑或的结果一样,区别在于:逻辑与、逻辑或无论左边是true还是false都要执行右边的表达式,短路与左边为false不执行右边,短路或左边是true不执行右边。

    5.5.2 移位运算符 

移位运算符在进行运算之前都要转换成二进制形式,移位操作是对二进制数的操作。

符号说明
>>向右移相应位数,低位舍去,高位补符号位
<<向左移相应位数,高位舍去,低位补0
>>>向右移相应位数,低位舍去,高位补0

 ⚠  移位运算符的右操作数需要完成模32运算(除非左操作数是long型,long型进行模64运算),eg:1 >> 35   <==> 1 >> 3

   

    5.6 三元运算符

三元运算符是?:,其使用格式如下:

数据类型 变量名 = 条件表达式 ? 值1 : 值2;

条件表达式的结果为true时变量赋值为值1,反之变量的值为值2

    5.7 运算符优先级

6 键入值、输出值

    6.1 键入

        无论是键入值还是输出值都需要使用到System类,但是由于System和String等类在java.lang包下,所以不需要导包,Java默认导入。

鼠标键入值需要三到四个步骤

导包:import java.util.Scanner;

创建扫描器对象:

Scaaner sc = new Scanner(System.in);

输出提醒语句:

System.out.println("提醒语句");

等待用户输入数据:

数据类型 变量名= sc.扫描方法;

扫描方法有很多种,具体使用哪一个由前面定义变量的数据类型决定,常用的有接收整型nextInt() 、接收键入的一行字符串nextLine()、接收键入字符串以空格为分界的一个单词next()、接收单精度数值nextFolat()、接收双精度数值nextDouble()……

  

    6.2 格式化输出

        从前面我们就可以知道,Java的输出要比输入简单得多,仅需一句System.out.println();就可以完成输出,但是如何进行格式化输出就有点困难了,加下来介绍一种格式化输出的方法:使用静态的String.format方法进行格式化,可以输出也可以用字符串变量接收不输出。由于Java中使用其对小数进行保留位数的操作最多,故下面主要介绍保留小数的用法(保留两位小数)当然在格式不错的情况下保留的位数是可以改变的

String num = String.format("%.2f",c);System.out.println(String.format("%.2f",c));

上一篇:【Java从入门到头秃专栏 1】学在Java语法之前

下一篇: 【Java从入门到头秃专栏 3】语法篇(二)

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

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

相关文章

【Java从入门到头秃专栏 】(三) 控制流程 Math Date DateFormat Calendar System BigDecimal Random

目录 1 控制流程 2 Math类 3 Date类 4 DateFormat类 5 Calendar类(日历类) 6 System类 7 BigDecimal类 8 Random类(随机数) 1 控制流程 1.1 块作用域 块(即复合语句)就是指由若干条Java语句组成的语句&#xff0c;并用一条大括号括起来&#xff0c;并借此形式确定了变量…

IntelliJ IDEA最常用的一些快捷键,学会了室友还以为你在祖安对线

目录 1 快速生成语句 1.1 main语句 1.2 输出语句 1.3 流程控制语句 1.3.1 if判断语句 1.3.2 while循环 1.3.3 for循环 1.3.4 数组、集合的循环操作 1.3.5 迭代器循环操作 1.4 对象实例化、定义变量 1.5 try-catch异常 2 快捷键 2.1 Ctrl系列 2.2 alt系列 2.2.1…

【Java从入门到头秃专栏 6】语法篇(五) :多线程 线程池 可见、原子性 并发包 Lambda表达式

目录 1 多线程 1.1 基本概念 1.2 创建线程的三种方式 1.4 解决线程安全问题的三种方法 1.5 线程通信 1.6 线程状态 2 线程池 2.1线程池的概念 2.2 创建并提交任务 3 可见性 3.1 变量不可见性 3.2 变量不可见性的解决方案 4 原子性 4.1 原子性的概念 4.2 保证原…

【Java从入门到头秃专栏 7】语法篇(六) :Lambda表达式(->) 方法引用(::) stream流

目录 1 Lambda表达式( -> ) ​ 2 方法引用( :: ) 3 Stream流 接下来介绍的三种语法叫&#xff1a;Lambda表达式 方法引用 stream流&#xff0c;这三种语法的使用要有特定条件&#xff0c;在一定条件下借助这三种语法可以使代码十分简单且优雅&#xff0c;但是不要舍本逐末…

【Java从入门到头秃专栏 4】语法篇(三) :字符串 数组

目录 1 String字符串 2 数组 1 String字符串 Java没有内置的字符串类型&#xff0c;而是在Java类库中提供了一个预定义类--String。 在Java中把每一个使用双引号括起来的字符串都看做是String类的一个实例化对象。 String常被称作是不可变字符串类型&#xff0c;那么有人就有…

【Java从入门到头秃专栏 8】语法篇(七) :反射 动态代理 注解

目录 1 反射机制 2 反射的应用&#xff1a;动态代理 3 注解 1 反射机制 反射机制(Reflect Machanism)&#xff0c;是指在程序运行期间借助Reflect API获取任何类的内部信息&#xff0c;并能直接操作对象的内部属性以及方法&#xff0c;Java本身而言是静态语言但是由于Java反…

【SSM面向CRUD编程专栏 1】Spring简介 xml配置文件 依赖注入 数据注入

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 2】Spring相关API 数据源(连接池)的配置 注解开发 整合junit

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 4】 Spring集成web环境 SpringMVC初识

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; ​…

IntelliJ IDEA里的项目搞崩了怎么办,本地历史版本回退拯救你崩溃的心灵

&#x1f4a5;写在前面&#xff1a; 如果你还没有读过雨果的悲惨世界也没有读过余华的活着&#xff0c;那你可以看看我今天早上的经历&#xff0c;如果不想听我胡侃的话&#xff0c;直接进入正题&#xff1a; 目录 本地历史的强大 今天早上打开IntelliJ IDEA继续ssm模块的代码练…

【SSM面向CRUD编程专栏 5】使用SpringMVC进行数据响应以及获取请求数据

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 6】springMVC拦截器、异常处理 jdbcTemplate

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 7】springAop 事务控制

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 8】一篇博客快速上手使用MyBatis进行CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

【SSM面向CRUD编程专栏 9】SSM框架整合

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

三万字速通SSM框架入门知识点,快速上手CRUD

&#x1f6eb;更多ssm知识见SSM_面向CRUD编程专栏 &#x1f695;本博客总结自黑马程序员的ssm框架视频 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 目…

无法在web.xml或使用此应用程序部署的jar文件中解析绝对uri:[http://java.sun.com/jsp/jstl/core]

问题简介 本人是在进行一个ssm框架项目的编写的时候&#xff0c;在数据库中查询到所有的商品信息并返回到页面使用EL表达式进行展现&#xff0c;但是使用tomcat 9.0.58运行的时候报错会出现以下报错情况。 页面报错&#xff1a; 控制台报错&#xff1a; 解决方法 首先看看是不…

check the manual that corresponds to your MySQL server version for the right syntax to use near

首先判断自己是在什么情况下报的错&#xff0c;如果是MyBatis的SQL报错的话&#xff0c;建议直接点击目录跳转到MyBatis时SQL报错&#xff0c;避免浪费时间。如果本文能够对你有所帮助的话&#xff0c;还请在评论区多多支持 目录 &#x1f37b;运行SQL语句、SQL文件等报错 &…

MyBatis的逆向工程工具,自动生成数据库对应的POJO实体类、mapper接口、增删改查mapper.xml文件

下载MyBatis的逆向工程工具&#xff0c;并解压缩到一个不包含中文字符的文件夹下&#xff0c;我直接放到了D盘下&#xff0c;下载地址&#xff1a;MyBatis逆向工程工具下载 如何使用MyBatis的逆向工程工具 下载之后使用idea在一个新窗口中打开&#xff0c;选中工具文件之后&am…

『收藏向 期末SSM课设救急』 教你从搭建到测试运行手撸一个SSM项目实战,附带源码,前端页面、解析和一般遇到的问题(排雷)

&#x1f6eb;ssm知识学习见SSM_面向CRUD编程专栏 &#x1f695;本项目来自动力节点的【米米商城】 &#x1f692;博主对于该知识尚在学习阶段 &#x1f684;如果发现存在问题请毫不吝啬的指出 &#x1f680;&#x1f680;扎哇太枣糕的博客主页&#x1f680;&#x1f680; 项目…