从0开始学Java:Java基础语法

news2024/11/28 7:43:55

文章目录

  • 1. 注释
  • 2. 关键字(*Keyword*)
  • 3. 标识符( Identifier)
  • 4. 常量(*Constant*)
  • 5. 输出语句
  • 6. 变量(*Variable*)
  • 7. 计算机如何存储数据
    • 7.1 进制
    • 7.2 计算机存储单位
    • 7.3 二进制数据存储
  • 8. 数据类型
    • 8.1 数据类型分类
    • 8.2 基本数据类型
    • 8.3 基本数据类型的存储范围
        • 整型系列
        • 浮点型系列(小数)
        • 单字符类型:char
        • 布尔类型
  • 9. 基本数据类型转换


在这里插入图片描述

Java基础语法包括以下几个方面:

数据类型:Java支持多种数据类型,包括基本数据类型(如int、double、char等)和引用数据类型(如String、数组、类等)。
运算符:Java支持多种运算符,包括算术运算符(如+、-、*、/等)、比较运算符(如==、!=、<、>等)、逻辑运算符(如&&、||、!等)等。
控制结构:Java支持多种控制结构,包括条件语句(如if、else if、else)、循环语句(如for、while、do while)等。
异常处理:Java支持异常处理,可以帮助程序处理运行时错误,提高程序的健壮性。
面向对象编程:Java是一种面向对象的编程语言,支持类和对象的概念,可以实现封装、继承和多态等特性。


1. 注释

  • 注释:就是对代码的解释和说明。其目的是让人们能够更加轻松地了解代码。为代码添加注释,是十分必须要的,它不影响程序的编译和运行。

  • Java中有单行注释多行注释文档注释

  • 单行注释以 //开头,以换行结束,格式如下:

    // 注释内容
    
  • 多行注释以 /*开头,以*/结束,格式如下:

    /*
    	注释内容
    	注释内容
    */
    
  • 文档注释以/**开头,以*/结束

    /**
    	注释内容
    	@author   可指定 java java程序的作者
    	@version  可指定源文件的版本
    */
    

2. 关键字(Keyword

  • 什么是关键字:被java语言赋予了特殊含义的字符串(单词)。

    例如HelloWorld案例中,出现的关键字有 publicclassstaticvoid 等,这些单词已经被Java定义,具有明确的含义。

  • 关键字的特点:全部都是小写字母

  • Java有哪些关键字:
    在这里插入图片描述


3. 标识符( Identifier)

  • 标识符概念 即给类、变量、方法、包等命名的字符序列,称为标识符。

简单的说,凡是程序员自己命名的部分都可以称为标识符。

  • 标识符的命名规则(必须遵守)

    (1)组成:英文大小写字母,数字,下划线_,美元符号$

    (2)数字不能开头

    (3)严格区分大小写

    (4)不能使用Java的关键字(包含保留字)和特殊值

  • 标识符的命名规范(遭受鄙视)

    (1)见名知意

    (2)类名、接口名等:每个单词的首字母都大写(大驼峰法则),形式:XxxYyyZzz,

    例如:HelloWorld,String,System等

    (3)变量、方法名等:从第二个单词开始首字母大写(小驼峰法则),其余字母小写,形式:xxxYyyZzz,

    例如:age,name,bookName,main

    (4)包名等:每一个单词都小写,单词之间使用点.分割,形式:xxx.yyy.zzz,

    例如:java.lang

    (5)常量名等:每一个单词都大写,单词之间使用下划线_分割,形式:XXX_YYY_ZZZ,

    例如:MAX_VALUE, PI

4. 常量(Constant

  • 常量概念在程序执行的过程中,其值不可以发生改变的量。

  • 常量的分类

    • 自定义常量:通过final关键字定义(后面在面向对象部分讲解)

    • 字面值、字面量(literal):

      字面量分类举例
      字符串字面量“HelloWorld”
      整数字面量12,-23
      浮点字面量12.34
      字符字面量‘a’,‘A’,‘0’,‘好’
      布尔字面量true,false
      空值字面量null
      public class ConstantDemo {
      	public static void main(String[] args) {
      		//字符串常量
      		System.out.println("HelloWorld");
      		
      		//整数常量
      		System.out.println(12);
      		System.out.println(-23);
      		
      		//小数常量
      		System.out.println(12.34);
      		
      		//字符常量
      		System.out.println('a');
      		System.out.println('A');
              System.out.println('0');
      		
      		//布尔常量
      		System.out.println(true);
      		System.out.println(false);
      	}
      }
      

      注意事项:

      ​ 字符字面量,单引号里面有且仅有一个字符。

      ​ 字符串字面量,使用双引号表示,可以包含多个字符。

      ​ 空值字面量,是一种特殊值,不可以在输出语句中直接打印

5. 输出语句

  • 换行输出语句:输出内容,完毕后进行换行,格式如下:

    System.out.println(输出内容);
    
  • 直接输出语句:输出内容,完毕后不做任何处理,格式如下

    System.out.print(输出内容);
    

示例代码:

对比如下两组代码:
System.out.println("tom");
System.out.println(18);

System.out.print("jack");
System.out.print(19);
//--------------------------
System.out.println("jack"+19);//jack19
System.out.println(100+19+"jack");//119jack

注意事项:

​ 换行输出语句,括号内可以什么都不写,只做换行处理

​ 直接输出语句,括号内什么都不写的话,编译报错

​ 只能输出一个数据,不能同时输出多个数据,如果要输出多个数据可以使用 + 把多个数据连接起来,变成为一个数据进行输出。


6. 变量(Variable

  • 变量的概念:

    在程序执行的过程中,其值可以发生改变的量

  • 变量的作用:

    用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的

    在这里插入图片描述

  • 定义格式:

    1. 声明变量,并同时赋值

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

      //声明并同时赋值,存储一个整数的年龄
      int age = 18;
      //打印输出变量值
      //+号表示连接符,把""中的字符串与变量age中的数据连接进行输出
      System.out.println("age = " + age);
      
    2. 先声明,再赋值

      数据类型 变量名;

      变量名=初始值;

      //先声明,再赋值
      int age;
      age=18;
      //打印输出变量值
      System.out.println("age = " + age);//18
      
      //变量可以重新赋值
      age=19;
      System.out.println("age = " + age);//19 
      
    3. 同时声明多个变量

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

      //声明多个变量并同时赋值
      int a=11,b=22;
      //或者先声明再赋值
      int c,d;
      c=33;
      d=44;
      
  • 变量的使用注意事项

    • 先声明后使用

      ​ 如果没有声明,会报“找不到符号”错误

    • 在使用之前必须初始化

      ​ 如果没有初始化,会报“未初始化”错误

    • 变量有作用域

      ​ 作用域为变量直接所属的{}范围内,如果超过作用域,也会报“找不到符号”错误

    • 在同一个作用域中不能重名

      ​ 同一个{},不能同时声明两个同名变量


7. 计算机如何存储数据

计算机世界中只有二进制。那么在计算机中存储和运算的所有数据都要转为二进制。包括数字、字符、图片、声音、视频等。

7.1 进制

  1. 进制分类与表示方式

    (1)十进制:
    数字组成:0-9
    进位规则:逢十进一

    System.out.println(10);//10表示十进制的10,输出十进制结果10
    

    (2)二进制:
    数字组成:0-1
    进位规则:逢二进一

    表示方式:以0b或0B开头

    System.out.println(0B10);//0B10表示二进制的10,输出十进制结果2
    

    十进制的256,二进制:100000000,为了缩短二进制的表示,又要贴近二进制,在程序中引入八进制和十六进制

    (3)八进制:很少使用
    数字组成:0-7
    进位规则:逢八进一

    表示方式:以0开头

    System.out.println(010);//010表示八进制的10,输出十进制结果8
    

    与二进制换算规则:每三位二进制是一位八进制值

    (4)十六进制
    数字组成:0-9,a-f或A-F
    进位规则:逢十六进一

    表示方式:以0x或0X开头

    System.out.println(0X10);//0x10表示十六进制的10,输出十进制结果16
    

    与二进制换算规则:每四位二进制是一位十六进制值

  2. 进制的转换

    十进制二进制八进制十六进制
    0000
    1111
    21022
    31133
    410044
    510155
    611066
    711177
    81000108
    91001119
    10101012a或A
    11101113b或B
    12110014c或C
    13110115d或D
    14111016e或E
    15111117f或F
    16100002010
  • 任意进制转十进制

    十进制的本质:123=1*102+2*101+3*10^0

    系数:就是每一个位上的数值。上例中的1,2,3
    基数:x进制的基数就是x。上例中的10
    权:对每一个位上的数据,从右到左,并且从0开始编号,对应的编号就是该数据的权。上例中的0,1,2

    任意进制转十进制:系数*基数^权次幂之和。

  • 十进制转任意进制:

    十进制数除以基数取余,直到商为0,余数反转。

    十进制转二进制:十进制整数6除以基数2,倒序取余数,结果为二进制数110
    在这里插入图片描述

7.2 计算机存储单位

  • 位(bit) 是数据存储的最小单位,也就是一个二进制位。其中8 bit 就称为1个字节(Byte)。
  • 字节(Byte): 是计算机信息技术用于计量存储容量的一种计量单位,1字节等于8bit。
  • 转换关系:
    • 8 bit = 1 Byte
    • 1024 Byte = 1 KB
    • 1024 KB = 1 MB
    • 1024 MB = 1 GB
    • 1024 GB = 1 TB

7.3 二进制数据存储

计算机底层都是使用二进制进行数据的存储的。不同类型的数据,存储方式也有不同。

  1. 整数存储
    计算机底层存储整数并不是把整数转换为二进制直接存储,而是以二进制的补码形式进行存储。要了解补码还要知道原码和反码:

    原码:把十进制转为二进制,然后最高位设置为符号位,1表示负数,0表示正数。

    正整数的原码、反码和补码都一样,称为三码合一。

    负整数的反码和补码表示为:

    反码:负整数的反码在其原码的基础上,符号位不变,其余位取反(0变1,1变0)

    补码:负整数的补码为其反码基础上+1

    例如:用1个字节的二进制表示一个数
    
    25 ==> 原码  0001 1001 ==> 反码  0001 1001 -->补码  0001 1001
    -25 ==>原码  1001 1001 ==> 反码  1110 0110 ==>补码  1110 0111
    

    一个字节可以存储的整数范围

    分为两种情况:

    (1)无符号:不考虑正负数

    0000 0000 ~ 1111 1111 ==> 0~255
    

    (2)有符号:-128~127

    0000 0000 ~ 0111 1111 ==> 0~127
    
    1000 0001 ~ 1111 1111 ==> -127 ~ -1 (补码形式存储)
    
    1000 0000  ==> -128     特殊值,最高位既是符号位,又是数值位
    
  2. 如何存储小数(了解)

    • 为什么float(4个字节)比long(8个字节)的存储范围大?
    • 为什么double(8个字节)比float(4个字节)精度范围大?
    • 为什么float和double不精确

    因为float、double底层也是二进制,先把小数转为二进制,然后把二进制表示为科学记数法,然后只保存:

    ①符号位②指数位③尾数位

    在这里插入图片描述

    详见《float型和double型数据的存储方式.docx》

  3. 如何存储字符

    在计算机的内部都是二进制的0、1数据,如何让计算机可以直接识别人类文字的问题呢?就产生出了编码表的概念。

    • 编码表

      就是将人类的文字和一个十进制数进行对应起来组成一张表格。例如:

      字符十进制数值二进制数值
      ‘0’480011 0000
      ‘A’650100 0001
      ‘a’970110 0001

      将所有的英文字母,数字,符号都和十进制进行了对应,因此产生了世界上第一张编码表ASCII(American Standard Code for Information Interchange 美国标准信息交换码)。

      Unicode(统一码、万国码、单一码)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

      Java中使用的字符集:Unicode编码集

      unicode使用2个字节存储一个字符,对于大量的英文字符(1个字节可以存储),无疑是浪费空间的,所以出现了UTF-8、UTF-16编码规则,UTF-8是以8位为一个编码单位的可变长编码规则。这时:

      英文字符:还是按照ASCII码表对应的数字进行存储(1个字节)

      中文字符:通常需要3个字节来存储

    • Java中字符常量的几种表示方式

      (1)‘一个字符’

      ​ 例如:‘A’,‘0’,‘我’

      (2)转义字符

      \n:换行
      \r:回车
      \t:Tab键
      \\:\
      \":"
      \':'
      \b:删除键Backspace
          
      System.out.println('\\');
      System.out.println("hello\tworld\njava");
      

      (3)\u字符的Unicode编码值的十六进制型

      ​ 例如:’\u5C1A’代表’尚’

      char c = '\u5C1A';
      char c = '尚';
      String s = '尚';//错误的,哪怕是一个字符,也要使用双引号
      
      char c2 = '';//错误,单引号中有且只能有一个字符
      String s2 = "";//可以,双引号中可以没有其他字符,表示是空字符串
      

      (4)直接给char类型变量赋值十进制的0~65535之间的Unicode编码值


8. 数据类型

8.1 数据类型分类

Java是一种强类型的语言,针对每一种数据都定义了数据类型,不同类型的数据二进制表示方式或分配的空间大小有所不同,java数据类型主要分为两大类:(定义变量需要确定数据类型,即确定数据使用的空间大小和二进制表示形式)

  • 基本数据类型:包括 整数浮点数字符布尔
  • 引用数据类型:包括 数组接口等。

8.2 基本数据类型

四类八种基本数据类型:
在这里插入图片描述

Java中的默认类型:整数类型是int 、浮点类型是double

  • 常量整数值都是int类型,占用4个字节空间。
    程序运行期间byte、short、char、boolean实际都是占用4个字节内存空间,
    但在逻辑上:
    ​ byte只有低8位有效空间。
    ​ short只有低16位有效空间。
    ​ 所以,可以直接把一个byte范围内的整数常量值直接赋给byte类型变量。short同理。byte b=10;
    赋值给int,只要在int范围即可。
    赋值给long,在int范围内的,可以加也可以不用加L,会自动升级为long,如果数字超过int范围,必须加L。

  • 小数常量值,无论多少,不加F,就是double类型。

8.3 基本数据类型的存储范围

  1. 整型系列

(1)byte:字节类型

​ 占内存:1个字节

​ 存储范围:-128~127

byte b=10;
byte b1=128//编译失败: 不兼容的类型: 从int转换到byte可能会有损失

(2)short:短整型类型

​ 占内存:2个字节

​ 存储范围:-32768~32767

short s=10;
short s1=32768//编译失败: 不兼容的类型: 从int转换到short可能会有损失

(3)int:整型

​ 占内存:4个字节

​ 存储范围:-2的31次方 ~ 2的31次方-1

int i=10;
int i1=12345678900;//编译错误: 过大的整数: 12345678900

(4)long:整型

​ 占内存:8个字节

​ 存储范围:-2的63次方 ~ 2的63次方-1

long j=10;
long j1=12345678900L;

注意:如果要表示某个超过int范围的常量整数它是long类型,那么需要在数字后面加L

  1. 浮点型系列(小数)

    (1)float:单精度浮点型

    占内存:4个字节

    精度:科学记数法的小数点后6~7位

    注意:如果要表示某个常量小数是float类型,那么需要在数字后面加F或f,否则就是double类型

    (2)double:双精度浮点型

    占内存:8个字节

    精度:科学记数法的小数点后15~16位

    float f = 12.3F;//右边如果赋值小数常量值,那么必须加F或f
    double d = 12.3;		
    
  2. 单字符类型:char

    占内存:2个字节

    char ch='a';
    

    char类型:使用单引号’'

  3. 布尔类型

    boolean:只能存储true或false

    虽然计算机底层使用0和1表示false和true,但是在代码中不能给boolean类型的变量赋值0和1,只能赋值false和true


9. 基本数据类型转换

在Java程序中,不同的基本数据类型的值经常需要进行相互转换。Java语言所提供的七种数值类型之间可以相互转换,基本数据类型转换有两种转换方式:自动类型转换和强制类型转换

在这里插入图片描述



在这里插入图片描述



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

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

相关文章

一行 Python 代码搞定训练分类或回归模型

引言 自动机器学习(Auto-ML)是指自动化数据科学模型开发流水线的组件。AutoML 减少了数据科学家的工作量&#xff0c;并加快了工作流程。AutoML 可用于自动化各种流水线组件&#xff0c;包括数据理解&#xff0c;EDA&#xff0c;数据处理&#xff0c;模型训练&#xff0c;超参数…

C++11(lambda表达式)

目录 一、lambda表达式的引入 二、语法格式 三、捕捉方式 四、lambda表达式的底层 1、仿函数的调用 2、lambda的调用 ​编辑 一、lambda表达式的引入 在之前&#xff0c;我们调用函数的方式有&#xff1a;通过函数指针调用&#xff0c;仿函数也能像函数一样调用。而在C…

pgsl基于docker的安装

1. 有可用的docker环境 &#xff0c;如果还没有安装docker&#xff0c;则请先安装docker 2. 创建pg数据库的挂载目录 mkdir postgres 3. 下载pg包 docker pull postgres 这个命令下载的是最新的pg包&#xff0c;如果要指定版本的话&#xff0c;则可以通过在后面拼接 :versio…

12 | JPA 的审计功能解决了哪些问题

Auditing 指的是什么&#xff1f; Auditing 是帮我们做审计用的&#xff0c;当我们操作一条记录的时候&#xff0c;需要知道这是谁创建的、什么时间创建的、最后修改人是谁、最后修改时间是什么时候&#xff0c;甚至需要修改记录……这些都是 Spring Data JPA 里面的 Auditing…

【LeetCode刷题(数据结构)】:给定一个链表 返回链表开始入环的第一个节点 如果链表无环 则返回 NULL

给定一个链表的头节点 head &#xff0c;返回链表开始入环的第一个节点。 如果链表无环&#xff0c;则返回 null 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos…

【Eclipse】查看版本号

1.在Eclipse的启动页面会出现版本号 2. Eclipse的关于里面 Help - About Eclipse IDE 如下图所示&#xff0c;就为其版本 3.通过查看readme_eclipse.html文件

华为浏览器风险提示 - 解决方案

问题 使用华为手机自带的华为浏览器时&#xff0c;可能会遇到网页提示风险提示且无法打开的情况&#xff0c;如下图。这是因为华为浏览器开启了安全浏览功能&#xff0c;下文介绍解决方案。 解决方案 取消华为浏览器设置中的安全浏览功能即可&#xff0c;操作步骤如下。打开…

EtherCAT报文-FPRD(配置地址读)抓包分析

0.工具准备 1.EtherCAT主站 2.EtherCAT从站&#xff08;本文使用步进电机驱动器&#xff09; 3.Wireshark1.EtherCAT报文帧结构 EtherCAT使用标准的IEEE802.3 Ethernet帧结构&#xff0c;帧类型为0x88A4。EtherCAT数据包括2个字节的数据头和44-1498字节的数据。数据区由一个或…

数据结构-表、树、图

一、表 1.1、散列表 也叫哈希表&#xff0c;把数据分散在列表中&#xff0c;依赖于数组下标访问的特性&#xff0c;数组的一种拓展。 散列思想&#xff1a; 即映射思想&#xff0c;用键值对来保存信息&#xff0c;键&#xff08;key&#xff09;和值&#xff08;value&a…

E117-经典赛题-主机发现与信息收集

任务实施: E117-经典赛题-主机发现与信息收集 任务环境说明&#xff1a; 服务器场景&#xff1a;p9_bt5-1&#xff08;用户名&#xff1a;root&#xff1b;密码&#xff1a;toor&#xff09; 服务器场景操作系统&#xff1a;Back Track five kali Linux 192.168.32.1…

【C++11】

目录 一、列表初始化1.1&#xff5b;&#xff5d;初始化1.2 std::initializer_list 二、声明2.1auto2.2decltype2.3nullptr 三、STL的变化四、右值引用和移动4.1左值引用与右值引用4.2右值引用的场景和意义4.3完美转发4.4完美转发的某个应用场景 四、lambda4.1lambda表达式4.2l…

Zabbix监控系统与部署Zabbix5.0监控(系列操作完整版)

Zabbix监控系统与部署Zabbix5.0监控&#xff08;系列操作完整版&#xff09; 1、监控软件的作用2、Zabbix基本介绍2.1Zabbix是什么&#xff1f;2.2Zabbix监控原理2.3Zabbix的优点2.4Zabbix的缺点2.5Zabbix监控系统的监控对象 3、Zabbix的监控架构3.1server-client架构3.2server…

EtherCAT报文-APRD(自动增量读)抓包分析

0.工具准备 1.EtherCAT主站 2.EtherCAT从站&#xff08;本文使用步进电机驱动器&#xff09; 3.Wireshark1.EtherCAT报文帧结构 EtherCAT使用标准的IEEE802.3 Ethernet帧结构&#xff0c;帧类型为0x88A4。EtherCAT数据包括2个字节的数据头和44-1498字节的数据。数据区由一个或…

感知机算法

感知机算法 二分类的情况 原理 样本集 X \pmb X X有两个类情况&#xff0c;感知机 Y w X b YwXb YwXb可以将样本集 X \pmb X X分为成功两类 Y w X b { > 0 , x ∈ w 1 < 0 , x ∈ w 2 YwXb \begin{cases}>0 \quad,\quad x \in w_1 \\ <0 \quad,\quad x \i…

Radius OTP完成堡垒机登录认证 安当加密

Radius OTP&#xff08;One-Time Password&#xff09;是一种用于身份验证的协议&#xff0c;它通过向用户发送一个一次性密码来验证用户的身份。使用Radius OTP可以实现堡垒机登录&#xff0c;以下是一些实现步骤&#xff1a; 1、安装Radius服务器 首先需要安装Radius服务器…

Matlab-ODE45:求解状态变量(微分方程组)

ode45函数 ode45实际上是数值分析中数值求解微分方程组的一种方法&#xff0c;4阶五级Runge-Kutta算法。 调用方法 ​ 其实这种方程的每一个状态变量都是t 的函数&#xff0c;我们可以从现代控制理论的状态空间来想。因此返回[ t , x ]&#xff0c;其中t是一个列向量&#xf…

【电源专题】CCM (ContinuousConduction Mode)和DCM(Discontinuous Conduction Mode)有什么区别?

在工作中,查看规格书的时候会看到CCM/DCM等专业词汇。那么什么是CCM?什么是DCM呢? DCM和CCM的概念 回顾文章:【电源专题】什么是开关稳压器的热回路?如何优化热回路?我们可以知道当开关管上管Q1导通Q2关断时,回路为绿色路径,电感储能同时给输出提供能量。当Q1关断Q2导…

【AI】深度学习——循环神经网络

神经元不仅接收其他神经元的信息&#xff0c;也能接收自身的信息。 循环神经网络&#xff08;Recurrent Neural Network&#xff0c;RNN&#xff09;是一类具有短期记忆能力的神经网络&#xff0c;可以更方便地建模长时间间隔的相关性 常用的参数学习可以为BPTT。当输入序列比较…

图解 RIP

路由器能把全世界的网络连接起来&#xff0c;再根据路由表进行数据转发。路由表项可以手动配置添加&#xff0c;但是面对不计其数、而且动态变化的网络环境&#xff0c;手动添加路由表项显得不切实际&#xff0c;必须使用可以自动生成路由表项、动态感知网络变化的网络协议&…

nginx的location优先级与重定向

概念 1.location是Nginx中的块级指令(block directive),&#xff0c;location指令的功能是用来匹配不同的url请求&#xff0c;进而对请求做不同的处理和响应&#xff0c;这其中较难理解的是多个location的匹配顺序。 2.我们输入的网址叫做请求URI&#xff0c;nginx用请求URI与…