java_java基础语法

这篇具有很好参考价值的文章主要介绍了java_java基础语法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

注释

  1. 什么是注释
    简单来说注释就是在程序中对代码进行解释说明的文字,方便自己和其他人理解,查看,不会影响程序的正常执行
  2. 注释有哪些
    单行注释
    // 注释内容只能写一行
    
    多行注释
    /*
    注释内容1
    注释内容2
    */
    
    文档注释
    /**
    注释内容
    注释内容
    */
    

字面量

告诉程序员,数据在程序中的书写格式
字面量分类

字面量类型 说明 实例
整数 不带小数的数字 123,456
小数 带小数的数字 3.1415926
字符 必须使用单引号,且有且只有一个字符 ‘a’,‘b’,‘c’
字符串 必须使用双引号,内容可有可无 " ",“hello world”
布尔 布尔值,表示真和假,只有两个值true和false true,false
一个特殊的值空值null 值为null

变量

变量就是用来储存一个数据的内存区域,(可以理解成盒子),且里面储存的数据可以变化
java_java基础语法

变量使用注意事项

  1. 什么类型的变量储存什么类型的值
  2. 同一个范围变量名不能重复
  3. 变量在使用时要有初始值
  4. 变量存在访问范围

数据的存储形式:二进制

计算机底层都是一些数字电路(开关),用开表示0,关表示1,这些0和1的形式就是二进制
数据在计算机底层都是采用二进制储存的

数据以二进制的形式储存在内存中,内存是一个非常精密的部件,包含了上亿个电子元器件,它们很小,达到了纳米级别。这些元器件,实际上就是电路;电路的电压会变化,要么是 0V,要么是 5V,只有这两种电压。5V 是通电,用1来表示,0V 是断电,用0来表示。所以,一个元器件有2种状态,0 或者 1。

我们通过电路来控制这些元器件的通断电,会得到很多0、1的组合。例如,8个元器件有 28=256 种不同的组合,16个元器件有 216=65536 种不同的组合。虽然一个元器件只能表示2个数值,但是多个结合起来就可以表示很多数值了。

我们可以给每一种组合赋予特定的含义,例如,可以分别用 1101000、00011100、11111111、00000000、01010101、10101010 来表示 我、是、马、牛、逼、! 这几个字,那么结合起来 1101000 00011100 11111111 00000000 01010101 10101010 就表示”我是马牛逼!“。

一般情况下我们不一个一个的使用元器件,而是将8个元器件看做一个单位,即使表示很小的数,例如 1,也需要8个,也就是 00000001。
1个元器件称为1比特(Bit)或1位,8个元器件称为1字节(Byte),那么16个元器件就是2Byte,32个就是4Byte,以此类推:
8×1024个元器件就是1024Byte,简写为1KB;
8×1024×1024个元器件就是1024KB,简写为1MB;
8×1024×1024×1024个元器件就是1024MB,简写为1GB。

现在,我们就知道1GB的内存有多少个元器件了。我们通常所说的文件大小是多少 KB、多少 MB,就是这个意思。

单位换算:
1Byte = 8 Bit
1KB = 1024Byte = 210Byte
1MB = 1024KB = 220Byte
1GB = 1024MB = 230Byte
1TB = 1024GB = 240Byte
1PB = 1024TB = 250Byte
1EB = 1024PB = 260Byte
我们平时使用计算机时,通常只会设计到 KB、MB、GB、TB 这几个单位,PB 和 EB 这两个高级单位一般在大数据处理过程中才会用到

数据类型

数据类型就是约束变量储存数据的形式,在java中数据类型分为基础数据类型和引用数据类型

基础数据类型

基础数据类型是Java在底层帮我们实现好的,我们可以直接使用。它包含了数值型,字符型和布尔型。
基础数据类型分为4类八种

数据类型 关键字 取值范围 内存占用
整数 byte -128~127 1
整数 short -32768~32767 2
整数 int(默认) -2147483648~2147483647 4
整数 long -9223372036854775808L~9223372036854775807L 8
浮点数 float 1.401298e-45到3.402823e+38 4
浮点数 double(默认) 4.9000000e-324到1.797693e+308 8
字符 char 0-65535 2
布尔 boolean true,false 1
整数类型
byte:

byte又叫字节,是最小的整数类型,它占一个字节的大小,也就是8位(bit),它可以存储 -2^7
~ 2^7-1,(之所以减一是因为有一个编码拿去表示0了)
-1范围的数据,也就是-128~127,默认值是0

byte minByte = -128;                //byte最小值
byte maxByte = 127;                 //byte最大值

byte overMinByte = -129;            //编译出错
byte overMaxByte = 128;             //编译出错

byte overMinByte = (byte) -129;     //结果为127
byte overMaxByte = (byte) 128;      //结果为-128
short:

short最小的整数类型是byte,short是倒数第二小的,它占两个字节的大小,也就是16位(bit),所以它有能力存储的整数类型数据范围是
-215~215-1,也就是-32768~32767,默认值同样是0。

short minShort = -32768;                 //short最小值
short maxShort = 32767;                  //short最大值
 
short overMinShort = -32769;             //编译出错
short overMaxShort = 32768;              //编译出错
      
short overMinShort = (short) -32769;     //结果为32767
short overMaxShort = (short) 32768;      //结果为-32768
int:

int类型比short类型更大,它占用四个字节,能表示的范围是从 -231~231-1,也就是-2147483648~2147483647(这个最好能记住,面试的时候有些面试官可能会问到),int类型也是Java中整数默认的类型,默认值同样是0

int minInt = -2147483648;                 //int最小值
int maxInt = 2147483647;                  //int最大值 
 
int overMinInt = -2147483649;             //编译出错
int overMaxInt = 2147483648;              //编译出错
 
int overMinInt = (int) -2147483649;       //编译出错       
int overMaxInt = (int) 2147483648;        //编译出错

int minInt = (int) -2147483649L;          //结果为2147483647
int maxInt = (int) 2147483648L;           //结果为-2147483648

int minInt = -2147483648 - 1;             //结果为2147483647
int maxInt = 2147483647 + 1;              //结果为-2147483648
long:

long型是整数类型中最大的,它占8个字节也就是64位,表示范围就是 -263~263-1
,数太大了,默认值是0L,一般情况下,long可以满足绝大部分的需求

long minLong = -9223372036854775808L;            //long最小值
long maxLong = 9223372036854775807L;             //long最大值 

long overMinLong = -9223372036854775809L;        //编译出错
long overMaxLong = 9223372036854775808L;         //编译出错

long minLong = -9223372036854775808L - 1;        //结果为9223372036854775807

long maxLong = 9223372036854775807L + 1; //结果为-9223372036854775808

小数类型

Java支持两种浮点类型的小数,float和double:

float:占4个字节,共32位,称为单精度浮点数。
double:占8个字节,共64位,称为双精度浮点数。

float:

float和double都是遵循IEEE 754标准的,该标准分别为32位和64位浮点数规定了二进制的表示形式。IEEE 754采用二进制的科学技术法来表示浮点数。对于float浮点数,用一位表示数字的符号,用8位来表示指数(底数为2),用23位来表示尾数,如下图所示。对于double浮点数,用1位表示数字的符号,用11位表示指数(底数为2),52位表示尾数。
java_java基础语法
下图就是float的二进制存储规则。

S(1位) E(8位) M(23位) N(32位)
符号位 0 0 0.0
符号位 0 不等于0 (-1)s*2 -126*(0.M)
符号位 1~254 不等于0 (-1)s*2 E-127*(1.M)
符号位 255 不等于0 表示特殊数字

在IEEE 754标准中,约定小数点左边有一位隐含位。就是上表中“0.M”和“1.M”中的“0”和“1”.当指数取值范围为1~254时,这个隐含位就是1,这样实际上尾数的有效位是24位。即为:1.MMMMMMMMMMMMMMMMMMMMMMM。

下面以5.0这个float类型的数字举例说明其二进制形式。

首先将5.0转换成二进制流形式,但是怎么转换呢?Java的Float类提供了一个静态方法可以帮我们将float的数字转换成其二进制流对应的int类型,我们再用Integer的toBinaryString()方法就可以得到二进制流了,具体如下图所示(Java默认小数是double类型,所以定义float类型的数需要加一个字母“f”说明一下):
java_java基础语法
注意:这一大串数字是31位并不是32位啊,其实是因为省略了最前面的符号位,因为5.0是整数,符号位是0,所以将其省略了,所以float类型5.0的二进制流是:

0 10000001 0100000000000000000000
符号位S是0,指数部分E为10000001,也就是无符号整数129,尾数部分的隐含位是1,所以实际尾数是1.01000000000000000000000,所以对应的二进制表达式为:
java_java基础语法

java_java基础语法

double:

double类型采用64位来表示浮点数,精确度比float类型要高,表示形式与float类似,这里就不再写了

char类型

char是字符类型,Java对字符采用Unicode字符编码。由于计算机的内存只能存储二进制数据,因此必须对各个字符进行编码。所谓字符编码,是指用一串二进制数据来表示特定的字符。常见的字符编码有很多,这里就不一一列举了,这里主要说一下Java采用的Unicode字符编码。

Unicode字符编码

Unicode收录了全世界所有语言文字中的字符,是一种跨平台的字符编码,UCS是Unicode字符编码的通用字符集。其有两种编码方案:

  • 两字节(16位)编码,采用这种编码方式的字符集称为UCS-2。Java语言采用的就是两字节的编码方案。
  • 四字节(32位)编码(实际只用了31位,最高位必须为0),采用这种编码方案的字符集称为UCS-4.

前面提到计算机只能存储二进制数据,所以存储字符需要对其进行编码,而Java采用Unicode的UCS-2字符集,占两个字节,例如字符’a’的编码二进制形式为0000 0000 0110 0001,对应16进制0x0061,十进制97,所以以下几种方式是等价的。

char c = 'a';
char c1 = '\u0061';
char c2 = '0x0061';
char c3 = '91';

一般情况下,我们在编写代码的时候,如果需要使用char型数据,我们会直接用字符对变量进行赋值,而不会用这个字符对应的编码,因为我们也记不住它哈哈,但是有些字符在赋值的时候会报错,
java_java基础语法

这是因为chat 类型必须是有且仅有一个字符

还有一些特殊的字符也不能直接输入,比如’ ,因为这些字符都是Java中可能需要使用到的特殊字符,所以编译器就自动飘红,这时候就需要我们使用转义字符来转义这些特殊字符。
java_java基础语法

boolean类型

boolean也叫布尔类型,是一种取值非真即假也就是true或false的数据类型,Java代码在编译的时候会将boolean用int或者byte替换,用0表示false,用非0正整数表示true,但Java编译器不容许直接用数字对boolean直接赋值

boolean flag = true;            //正确
boolean flag1 = false;          //正确

java_java基础语法

引用类型

Java中引用类型分为三种,分别是类引用类型,接口引用类型和数组引用类型

Object object;             //类引用类型
List<Object> list;         //接口引用类型
int[] array;               //数组引用类型

和基础数据类型不同的一点是,引用数据类型可以赋值为null,也就是空的意思

Object object = null;             //类引用类型
List<Object> list = null;         //接口引用类型
int[] array = null;               //数组引用类型

常用的引用类型有很多,Jdk给我们提供了很多核心引用类型供我们使用,当然我们也可以自定义引用类型来使用(除了数据引用类型),为了缩短文章的篇幅,下一章我会详细讲解引用类型的一些常见问题,比如定义和使用等等

数据溢出

long maxLong = 9223372036854775807L + 1; //结果为-9223372036854775808

在计算机中,当数据大小超过计算机所用数据类型表示范围的时候,就会发生数据溢出。比如下面这行代码,上面已经说过byte的最大值为127,那这行代码会发生什么问题呢?看的出来是一个类型不匹配的问题,因为在java中整数类型默认是int,当我们要存储的数值在byte范围之内,编译器会帮我们把数据自动识别成byte类型,但是当我们输入一个超过byte类型表示范围的数据,编译器就会提示我们:“这是一个int类型的数据,你不可以用byte类型来存储”。
java_java基础语法
这时我们就可以将130强制转换成byte类型。但是大家可能会问了,130明明已经超过byte类型可以表示的范围了啊,为什么不会报错呢?
java_java基础语法
这就涉及到了数据溢出的问题,让我们先看看输出这个num到底会得到几。
java_java基础语法
为什么是-126呢?首先我们要知道,在计算机中,数据是用其二进制补码形式来存储的,过程如下:首先130会被当成int类型存储,int是4个字节32位,也就是0000 0000 0000 0000 0000 0000 1000 0010,转成byte类型会丢弃高三字节部分,也就是1000 0010,因为正数的源码,补码,反码相同,所以130的补码还是1000 0010,将其转换成源码:补码(1000 0010)->反码(1000 0001)->原码(1111 1110)为-126,所以最后的转换结果就是-126。128溢出就是-128,129溢出就是-127(相信大家已经明白了,如果不明白的话大家可以给我留言,我会出一篇相关文章的)。其它类型的溢出也是如此。

byte num = 130;                         //编译出错
byte castNum = (byte) 130;              //结果为-126

关键字标识符

Java有一组关键字,这些关键字是保留字,不能用作变量、方法、类或任何其他标识符
1)48个关键字:abstract、assert、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、enum、extends、final、finally、float、for、if、implements、import、int、interface、instanceof、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。

2)2个保留字(现在没用以后可能用到作为关键字):goto、const。

3)3个特殊直接量:true、false、null。

关键字 描述
abstract 非访问修饰符。用于类和方法:抽象类不能用于创建对象(要访问它,必须从另一个类继承)。抽象方法只能在抽象类中使用,并且它没有主体。主体由子类(继承自)提供
assert 用于调试
boolean 只能存储真值和假值的数据类型
break 从循环或switch块中断开
byte 可以存储-128和127之间的整数的数据类型
case 在switch语句中标记代码块
catch 捕获由try语句生成的异常
char 用于存储单个字符的数据类型
class 定义一个类
continue 继续到循环的下一个迭代
const 定义一个常量。不在使用中改用final
default 指定switch语句中的默认代码块
do 与while一起使用以创建do-while循环
double 可以存储1.7e−308 到 1.7e+308
else 用于条件语句中
enum 声明枚举(不可更改)类型
exports 导出包含模块的包。Java9中的新特性
extends 扩展类(表示一个类是从另一个类继承的)
final 用于类、属性和方法的非访问修饰符,使它们不可更改(无法继承或重写)
finally 与异常一起使用,无论是否存在异常都将执行的代码块
float 可以存储3.4e−038 到 3.4e+038
for 创建for循环
goto 不在使用中,没有任何功能
if 一个条件语句
implements 实现一个接口
import 用于导入包、类或接口
instanceof 检查对象是特定类的实例还是接口的实例
int 可以存储从-2147483648到2147483647的整数的数据类型
interface 用于声明仅包含抽象方法的特殊类型的类
long 可以存储从-9223372036854775808到9223372036854775808的整数的数据类型
module 声明一个模块。Java9中的新特性
native 指定方法不是在同一Java源文件中实现的(而是在另一种语言中实现的)
new 创建新对象
package 声明一个包
private 用于属性、方法和构造函数的访问修饰符,使它们只能在声明的类中访问
protected 用于属性、方法和构造函数的访问修饰符,使它们可以在同一个包和子类中访问
public 用于类、属性、方法和构造函数的访问修饰符,使它们可以被任何其他类访问
requires 指定模块内所需的库。Java9中的新特性
return 已完成方法的执行,并可用于从方法返回值
short 可以存储从-32768到32767的整数的数据类型
static 用于方法和属性的非访问修饰符。无需创建类的对象即可访问静态方法/属性
strictfp 限制浮点计算的精度和舍入
super 指超类(父)对象
switch 选择要执行的多个代码块之一
synchronized 非访问修饰符,指定一次只能由一个线程访问方法
this 指方法或构造函数中的当前对象
throw 创建自定义错误
throws 指示方法可能引发的异常
transient 非访问修饰符,指定属性不是对象持久状态的一部分
try 创建try…catch语句
var 声明一个变量。Java10中的新特性
void 指定方法不应具有返回值
volatile 指示属性不是本地缓存的线程,并且总是从"主内存"中读取
while 创建while循环

注意 true false null 虽然不能叫做关键字,但它们是不能用作标识符的文字和保留字。

  1. 标识符
    标识符就是一些由字符,符号组合起来的名称,用于给类,方法,变量等起名的

  2. 标识符要求文章来源地址https://www.toymoban.com/news/detail-422946.html

  • 基本要求: 由数字,字母,下划线(_)和美元符($)组成
  • 强制要求: 不能以数字开头,不能是关键字,区分大小写
    java_java基础语法
  1. 命名规范
  • 变量名称: 满足标识规则,建议全英文,有意义,首字母小写,且满足小驼峰模式,例如 int studentAge = 108
  • 类名称: 满足标识符规则,建议全英文,有意义,首字母大写,且满足大驼峰模式,例如 HelloWorld.java

到了这里,关于java_java基础语法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • solidity基础语法与简单案例20221130

    1、Todolist(日程表)练习 包括增删改查和使用地址获取结构体 2、事件event         是用于记录当前智能合约运行状态的方法,体现在区块链浏览器上以及交易记录的log,通过事件可以查询改变过的状态。         包括构建事件和触发事件。         事件是写入方法,不

    2024年02月05日
    浏览(33)
  • iNFTnews | 对体育行业和球迷来说,NFT可以带来什么?

    自2017年CryptoKitties发布以来,NFT的受欢迎程度得到大大提高,且该行业将在未来两年内增长超过8000亿美元。 如果说NFT最让人印象深刻的事,莫过于“无聊猿游艇俱乐部”和“P2E”项目,此外NFT还有哪些值得关注的地方呢? 事实上,体育界对NFT的关注一直随着它的发展持续跟

    2023年04月09日
    浏览(50)
  • 02.【python基础一】手把手教你什么是注释、变量及输入函数

    📋 个人简介 💖 作者简介:大家好,我是小鹏linux,运维领域新星创作者,阿里云ACE认证高级工程师😜 📝 个人主页:小鹏linux🔥 🎉 支持我:点赞👍+收藏⭐️+留言📝 💬格言:你未必出类拔萃,但一定与众不同!🔥 📕 系列专栏:                🍎 阶段一:windows基

    2023年04月08日
    浏览(50)
  • Blazor简单教程(1.1):Razor基础语法

    Blazor最重要的是Razor组件和cshtml页面。两个最大的区别就是cshtml是完整的html,Razor是不完整的html 微软Razor 语法官方文档 我的Blazor基础语法个人总结 C# Blazor 学习笔记(12):css样式设置 C#小轮子:Visual Studio自动编译Sass文件 Components:组件 Controller:控制器/API Layout:布局 Models:实

    2024年02月13日
    浏览(54)
  • Java中规模软件开发实训——简单的文本编辑器(代码注释详解)

    ✨ 博主: 命运之光 🌸 专栏: Python星辰秘典 🐳 专栏: web开发(html css js) ❤️ 专栏: Java经典程序设计 ☀️ 博主的其他文章: 点击进入博主的主页 前言: 在现代社会中,计算器是我们生活中不可或缺的工具之一。它们可以轻松地进行各种数值计算,从简单的加减乘除

    2024年02月13日
    浏览(44)
  • 海关数据有对于外贸企业来说有什么作用?要如何使用才会有效果

    海关数据作为传统四大客户开发途径之一,一直以来知道的外贸人都很多,用的也很多,那么为什么这么多外贸人喜欢用海关数据呢,海关数据有对于外贸企业来说有什么作用?要如何使用才会有效果,如何购买海关数据 1.快速找到适合自己的买家  海关提单是买卖双方的交

    2023年04月26日
    浏览(49)
  • 零基础小白来说,学习算法的学习路线可以分为以下几步

    对于零基础小白来说,学习算法的学习路线可以分为以下几步: 学习基础算法知识 在学习算法之前,需要先学习计算机基础知识,例如数据结构、算法复杂度、基本编程语法等。学习基础算法知识,可以通过教材、视频教程、线上课程等方式进行。 刷题练习 掌握了基础算法

    2024年02月06日
    浏览(53)
  • 【Java基础教程】(三)程序概念篇 · 上:探索Java编程基础,注释、标识符、关键字、数据类型~

    掌握Java中标识符的定义; 掌握Java中数据类型的划分以及基本数据类型的使用原则; 掌握Java运算符的使用; 在编写程序时,为了提高程序的可维护性,我们可以在代码中添加注释。 注释是一种说明性的文字,不会被编译器编译执行 。 Java提供了三种注释形式: // :单行注

    2024年02月12日
    浏览(160)
  • Java基础篇 | Java基础语法

    ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: Java从入门到精通 ✨特色专栏: MySQL学习 🥭本文内容:Java基础篇 | Java基础语法 🖥️个人小站 :个人博客,欢迎大家访问 📚个人知识库: 知

    2024年02月08日
    浏览(84)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包