【java 基础一】 纯语法基础记录

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

一、基础

1.1 变量

Java 变量是程序中存储数据的容器。
在 Java 中,变量需要先声明再使用,并且必须先声明再赋值。

  1. 声明变量:声明变量时需要指定变量的类型、名称和初始值。例如,声明一个整型变量可以如下所示:
int num = 0;
  1. 变量类型:Java 中的变量类型可以分为基本数据类型和引用数据类型。
    基本数据类型包括:byte、short、int、long、float、double、char 和 boolean。
    引用数据类型包括:类、接口、数组等。

  2. 变量作用域:Java 中的变量作用域可以分为局部作用域、成员作用域和静态成员作用域。
    局部作用域指的是在方法或代码块中声明的变量,
    成员作用域指的是在类中声明的变量,
    静态成员作用域指的是在类中声明为 static 的变量。

  3. 变量赋值:在 Java 中,变量赋值使用等号(=)操作符。例如,将整型变量 num 赋值为 1 可以如下所示:

num = 1;
  1. 变量运算:Java 中的变量可以进行算术运算、比较运算和逻辑运算等操作。例如,将两个整型变量相加可以如下所示:
int a = 1;  
int b = 2;  
int c = a + b;
  1. 字符串变量:Java 中字符串变量使用 String 类型表示。例如,声明一个字符串变量可以如下所示:
String name = "Tom";
  1. 数组变量:Java 中数组变量使用数组类型表示。例如,声明一个整型数组可以如下所示:
int[] nums = new int[10];

在 Java 中,变量是程序中必不可少的元素,它为程序提供了存储数据的能力。
通过声明变量、给变量赋值、进行变量运算等操作,可以实现各种复杂的程序功能。

1.2 数据类型

1.2.1 基本数据类型

基本数据类型包括:byte、short、int、long、float、double、char 和 boolean。

数据类型 关键字 内存占用 取值范围
整数类型 byte 1 byte(8位) - 2^7 - 2^7 -1
short 2 byte(16位) - 2^15 - 2^15 -1
int 4 byte(32位) - 2^31 - 2^31 -1
long 8 byte(64位) - 2^63 - 2^63 -1
浮点类型 float 4 byte(32位) 一3.403E38~3.403E38
double 8 byte(64位) 1.797693e+308~ 4.9000000e-324
字符流行 char 2 byte(16位) 0 - 2^16 -1
布尔类型 boolean 1 byte(-) true,false

1 byte = 8位

这些基本数据类型,在运算时,如果类型不一样,则需要进行类型的转化,如 int + float 型数据想加,我们分别讲下常见的类型转换。

  • 自动类型转换
    必须满足转换前的数据类型的位数要低于转换后的数据类型, 如上表所示,
1字节 2字节 4字节 8字节
byte short int long
char float double
例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,
同样float数据类型的位数为32,可以自动转换为64位的double类型。

这种自动的转换,不需要担心精度丢失。

这里有个特例,long可以自动转换为float,简单来说因为浮点数用科学计数法存储的,而整数是用二进制存储的。
所以虽然long型是64位的,float型是32位,但是float型所能表示的数要远远大于long型。
  • 强制类型转换
    转换的数据类型必须是兼容的,格式:(type)value
    一般是大的类型转换为小类型
类型转换时可能会导致溢出或精度的丢失,另外浮点数到整数的转换是通过舍弃小数得到的。

如果涉及到不同数据类型之间的数学运算,比如+、-、*、/等操作,
小类型的数据和大类型的数据进行计算时,会自动进行类型提升,最终的结果变成大类型!
1.2.2 引用数据类型

引用数据类型包括:类、接口、数组等。

// 数组的静态初始化
int[] arr = new int[3];
int[] arr = new int[]{4,5,6};
int[] arr = {1,2,3};


// 
Anr anr = new Anr(cookie);

1.3 原码、反码、补码及进制转换

原码: 最高位是符号位(0 表示正数,1 表示负数),其他位为数值位。

10的原码:  00001010
-10的原码: 10001010

反码: 正整数的反码与原码一致,负整数的反码是在原码基础上,符号位不变,其他位按位取反

10的反码:  00001010
-10的反码: 11110101

补码: 正整数的补码与原码一致,负整数的补码是在反码基础上加1

10的补码:  00001010
-10的补码: 11110110

【java 基础一】 纯语法基础记录

二进制
二进制,里面只有0和1
十进制
将十进制除以2再取余,然后将余数和最后的1按照从下向上倒序写的方法,即可变为二进制。
八进制
所谓八进制,就是每 3 位二进制作为一个单元,其中最小的数是 0,最大的数是 7,一共 8 个数字
【java 基础一】 纯语法基础记录

十六进制
十六进制,就是每 4 位二进制作为一个单元,其中最小数是 0,最大数是 15,一共 16 个数字,分别用 0 ~ 9、A、B、C、D、E、F 表示。
【java 基础一】 纯语法基础记录

1.4 运算符

运算符 描述
+ 加法: 进行两侧变量值相加
- 减法: 进两侧变量值相减
* 乘法: 进行两侧变量值相乘
\ 除法: 左侧变量值除以右侧变量
% 取模: 左侧变量值除以右侧变量取余数
++ 自增: 自身+1
–- 自减: 自身-1
== 判断两侧的变量值是否相等,如果相等条件为真
!= 判断两侧变量值是否不相等,如果不相等条件为真
> 判断左侧变量值是否大于右侧变量值, 如果大于条件为真
< 判断左侧变量值是否小于右侧变量值, 如果小于条件为真
>= 判断左侧变量值是否大于或者等于右侧变量值, 如果大于或者等于条件为真
<= 判断左侧变量值是否小于或者等于右侧变量值, 如果小于或者等于条件为真
&& 逻辑与。当且仅当两个操作数都为真,条件才为真。
! 逻辑非。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。
<< 有符号左移, 相当于乘以2^n
>> 有符号右移, 相当于除以2^n
>>> 无符号右移
& 位与 (只有1&1得1,其他得0)
~ 位非(反码) 即按位取反
^ 位异或 (即 相同的为0 不同的为1) 1^1=0 0^0=0 1^0=1

一些基本的运算符比较简单,我们说下位运算符,

位运算符 是按照二进制位操作 整数 的, 涉及到 二进制 和 整数存储方式(原码、反码、补码)

直接举例说明
以 4 & -5 = 0为例子展示运算流程:

1. 因为4为正数,所以原码和补码相同,即4的补码为:00000000 0000000 00000000 00000100

  2.因为-5为负数,所以需要进行原码 >>> 反码 >>> 补码的转换

    1)原码:10000000 00000000 00000000 00000101

    2)反码:11111111 11111111 11111111 11111010

    3)补码:11111111 11111111 11111111 11111011

  3.将4和-5的补码进行 & 运算:00000000 0000000 00000000 00000100

                  11111111 11111111 11111111 11111011         &

               00000000 00000000 00000000 00000000

  4.得到的补码结果为:00000000 00000000 00000000 00000000。所以结果为0

	/*
	 * 位运算
	 * "<<" 有符号左移
	 * ">>" 有符号右移
	 * ">>>" 无符号右移
	 * "&" 位与 (只有1&1得1,其他得0)
	 * "|" 位或 (只有0|0为0 ,其他为1)
	 * "~" 位非(反码) 即按位取反
	 * "^" 位异或 (即 相同的为0 不同的为1) 1^1=0 0^0=0 1^0=1
	 */
	private static void testWei() {
		/**
		 * "~" 位非(反码) 4 的反码 0000 0000 0000 0000 0000 0000 0000 0100 
		 *             按位取反 1111 1111 1111 1111 1111 1111 1111 1011 
		 * 此时按位取反后的值为补码 现在需要换成二进制原码用来输出 先减1
		 *                   1111 1111 1111 1111 1111 1111 1111 1010 
		 *             然后取反 0000 0000 0000 0000 0000 0000 0000 0101
		 * 最后 输出接口要加上符号位 即 -5 (先取反 ,在减1也可以)
		 */
		System.out.println("~4 " + (~4));

		/**
		 * "&" 位与 (只有1&1得1,其他得0) 4 的补码 0000 0000 0000 0000 0000 0000 0000 0100 6
		 * 的补码 0000 0000 0000 0000 0000 0000 0000 0110 位与结果 0000 0000 0000 0000
		 * 0000 0000 0000 0100
		 */
		System.out.println("4&6 " + (4 & 6));

		/**
		 * "<<" 有符号左移 规律左移是基数乘以2的移位幂次方,比如3<<2则是3*2*2也就是3乘以2的2次幂
		 */
		System.out.println("3 << 3 " + (3 << 3));

		/**
		 * ">>" 有符号右移 规律左移是基数除以2的移位幂次方,比如3>>1则是3/2也就是3除以2的1次幂
		 */
		System.out.println("3 >> 1 " + (3 >> 1));

		/**
		 * ">>>" 无符号右移 无论高位是0还是1都补0
		 */
		System.out.println("3 >>> 1 " + (3 >>> 1));
	}

1.5 修饰符

分成访问修饰符 & 非访问修饰符,这个不多说,我们看图记忆即可。
【java 基础一】 纯语法基础记录

1.5 表达式 & 语句 & 代码块

1.5.1 表达式

Java 表达式是 Java 编程语言中的基本构建块,用于执行特定的操作并返回一个值。
Java 表达式可以包含 Java 操作符、变量、方法和常量。以下是一些 Java 表达式的示例:我们举几个常见的例子
加法表达式:

int a = 10;  
int b = 20;  
int sum = a + b;

乘法表达式:

int a = 10;  
int b = 20;  
int product = a * b;

条件表达式:

int a = 10;  
int b = 20;  
int max = (a > b) ? a : b;

字符串拼接表达式:

String str1 = "Hello";  
String str2 = "World";  
String message = str1 + " " + str2;

方法调用表达式:

int a = 10;  
int b = 20;  
int sum = add(a, b);

数组引用表达式:

int[] arr = {1, 2, 3, 4, 5};  
int firstElement = arr[0];
1.5.2 语句、代码块

在 Java 中,使用大括号({})来定义代码块,可以使用分号(;)来结束语句。

声明语句:用于声明变量、方法和类等。
赋值语句:用于给变量赋值。
条件语句:用于根据条件执行不同的代码块。
循环语句:用于重复执行一段代码。
方法调用语句:用于调用方法。
异常处理语句:用于处理程序运行时发生的异常。
注释语句:用于添加注释,帮助其他开发人员理解代码。
数组声明语句:用于声明和初始化数组。
接口声明语句:用于声明接口。
类定义语句:用于定义类。

1.6 数组

Java中的数组是一种数据结构,用于存储相同类型的数据。
一维数组

// 数组的静态初始化
int[] arr = new int[3];
int[] arr = new int[]{4,5,6};
int[] arr = {1,2,3};


二维数组

// 声明一个二维数组变量  
int[][] myArray;  
  
// 创建二维数组并初始化  
myArray = new int[3][4];

推荐阅读

Java 异常

【五一创作】Java 反射知识及实战

java 泛型知识整理

学java注解,看这一篇文章就够了

细说java动态代理及使用场景文章来源地址https://www.toymoban.com/news/detail-494683.html

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

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

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

相关文章

  • 【Java基础篇】数据类型与变量

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏 :Java.SE,本专栏主要讲解运算符,程序逻辑控制,方法的使用,数组的使用,类和对象,继承和多态,抽象类和接口等内容 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 常

    2024年02月05日
    浏览(104)
  • java基础(三)-变量和数据类型

    上节说了最简单的程序,其实就是一条命令,这节我们开始讲变量。 首先什么是变量 ? 变量是用来存储数据的特殊实体。在 Java 语言中,所有数据都存储在变量中。 它就像一个盒子,假设你在一张纸上写下数字 13,并把它放进一个盒子里。现在我们可以说,这个盒子里面存

    2024年02月01日
    浏览(48)
  • oracle存储过程(基础语法)

            存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过

    2023年04月08日
    浏览(43)
  • 〔002〕Java 基础之语法、数据类型、进制转换、运算符

    注释: 是写在程序中对代码进行解释说明的文字,方便自己和其他人查看,以便理解程序的 注释分为 单行注释 和 多行注释 ,注释的内容并不会被编译,所以 不会影响 代码的运行 单行注释通过 // 进行标注,只能注释一行 多行注释通过 /* 注释内容 */ 进行标注,可以注释多

    2024年02月05日
    浏览(78)
  • 初识Java篇(JavaSE基础语法)(1)(数据类型+运算符)

     个人主页(找往期文章包括但不限于本期文章中不懂的知识点): 我要学编程(ಥ_ಥ)-CSDN博客 目录 前言:  初识Java  运行Java程序 注释 标识符 数据类型与变量  字面常量 数据类型 变量 类型转换  类型提升  字符串类型  运算符 算术运算符  关系运算符  逻辑运

    2024年03月24日
    浏览(51)
  • 【Python零基础学习入门篇①】——基本语法与变量

    ⬇️⬇️⬇️⬇️⬇️⬇️ ⭐⭐⭐Hello,大家好呀我是陈童学哦,一个普通大一在校生,请大家多多关照呀嘿嘿😁😊😘 🌟🌟🌟 技术这条路固然很艰辛,但既已选择,该当坚毅地走下去,加油! 🌤️PUA: ” 你所看到的惊艳都曾平庸历练 **“**🚀🚀🚀 🍉🍉🍉 最后让我

    2023年04月08日
    浏览(46)
  • 01 java 学习 数据类型、基础语法、封装、继承、多态、接口、泛型、异常等

    目录 环境搭建和基础知识  什么是JRE: 什么是JDK: 基础数据类型  分支选择if else switch和c一毛一样 for和while循环还有数组基本和c一样 封装 函数调用、传参、命名规范、数组新命名规范 java输入Scanner scanner = new Scanner(System.in); 类的创建和使用以及封装修饰符  构造方法:含义、

    2024年02月11日
    浏览(41)
  • MySQL基础(五)视图、存储过程和存储函数、变量

    目录 常见的数据库对象  ​编辑  视图 创建视图 改变视图 优缺点 存储过程与存储函数  创建存储过程  创建存储函数 存储过程和存储函数的区别  存储过程和函数的查看、修改、删除  查看 修改 删除 存储过程的优缺点 优点 缺点 变量 系统变量 查看系统变量 修改变量

    2024年02月13日
    浏览(44)
  • 【Python系列】Python基础语法轻松入门—从变量到循环

    目录 写在前面  语法介绍 变量 数据类型 整数 浮点数 字符串 列表 元组 字典 运算符 算术运算符 比较运算符 逻辑运算符 条件语句 循环语句 图书推荐 图书介绍 参与方式 中奖名单  Python 是一种高级、解释型的编程语言,具有简单易学、可读性强、开发效率高等特点。本文

    2024年02月14日
    浏览(39)
  • 【Python零基础学习入门篇①】——第一节:基本语法与变量

    ⬇️⬇️⬇️⬇️⬇️⬇️ ⭐⭐⭐Hello,大家好呀我是陈童学哦,一个普通大一在校生,请大家多多关照呀嘿嘿😁😊😘 🌟🌟🌟 技术这条路固然很艰辛,但既已选择,该当坚毅地走下去,加油! 🌤️PUA: ” 你所看到的惊艳都曾平庸历练 **“**🚀🚀🚀 🍉🍉🍉 最后让我

    2024年02月03日
    浏览(61)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包