JAVA基础学习入门

article/2025/9/23 15:08:17

JAVA入门之基本语法(一)

最近开始复习JAVA语言为找工作做准备,方便以后再次复习或者用到的时候回顾。先是从JAVA的基本语法学起,因为有c和c++语言的基础知识铺垫,所以这部分的笔记会比较粗略,毕竟语言都是贯通的嘛~

1.变量

1.1变量的使用

  • java定义变量的格式:数据类型 变量名 = 变量值
  • 说明:
    1.变量必须先声明,后使用
    2.变量都定义在其作用域内。在作用域内,它是有效的。换句话说,出了作用域,就失效了
    3.不可以在同一个作用域内定义同名的变量

1.2变量的数据类型

在这里插入图片描述

1.2.1整数类型:byte、short、int、long

  • java各整数类型有固有的表数范围和字段长度,不受具体OS的影响,以保证java程序的可移植性
  • java的整型常量默认为int型,声明long型常量须后加“l”或“L”
  • java程序中变量通常声明为int型,除非不足以表示较大的数,才使用long
类型占用存储空间表数范围
byte1字节=8bit位-128~127
short2字节 − 2 15 -2^{15} 215~ 2 15 − 1 2^{15}-1 2151
int4字节 − 2 31 -2^{31} 231~ 2 31 − 1 2^{31}-1 2311
long8字节 − 2 63 -2^{63} 263~ 2 63 − 1 2^{63}-1 2631

1.2.2浮点类型:float、double

  • Java的浮点型常量默认为double型,声明float型常量,须后加‘f’或‘F’
类型占用存储空间表数范围
单精度float4字节-3.403E38~3.403E38
双精度double8字节-1.798E308~1.798E308

1.2.3字符类型:char

  • char型数据用来表示通常意义上“字符"(2字节)
  • Java中的所有字符都使用Unicode编码,故一个字符可以存储一个字母,一个汉字,或其他书面语的一个字符
  • 字符型变量的三种表现形式:
    1.字符常量是用单引号(’’)括起来的单个字符,内部只能写一个字符
    2.Java中还允许使用转义字符‘\’来将其后的字符转变为特殊字符型常量
    3.直接使用Unicode值表示字符型常量
  • char类型是可以进行运算的。因为它有对应的Unicode码

1.2.4字符类型:boolean

  • 只能取两个值之一:true、false
  • 常常在条件判断、循环结构中使用

1.3基本数据类型之间的运算规则

这里只讨论7种基本数据类型变量间的运算。不包含boolean类型。

1.3.1自动类型提升

当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。注意:此时的容量大小指的是,表示数的范围的大和小。比如:float容量大于long容量。
byte 、char 、short–>int–>long–>float–>double
特别的,当byte、char、short三种类型的变量做运算时,结果为int型

1.3.2强制类型转换(自动类型提升运算的逆运算)

  • 需要使用强制符:( )
  • 注意点:强制类型转换,可能会导致精度损失
class VariableTest3 {public static void main(Stringp[] args){double d1 = 12.9;//精度损失举例1int i1 = (int)d1;//截断操作System.out.println(i1);//12//没有精度损失long l1 = 123;short s2 = (short)l1;//精度损失举例2int i2 = 128;byte b = (byte)i2;System.out.println(b);//-128}
}
  • 整型常量,默认类型为int型号;浮点型常量,默认类型为double型。
class VariableTest4 {public static void main(Stringp[] args){byte b = 12;byte b1 = b + 1; //编译失败float f1 = b + 12.3; //编译失败}
}

1.4 String类型变量的使用

  • String属于引用数据类型,翻译为:字符串
  • 声明String类型变量时,使用一对“ ”
  • String可以和8种基本数据类型变量做运算,且运算只能是连接运算:+
  • 运算结果仍然是String类型
class StringTest1 {public static void main(Stringp[] args){char c = 'a';//97 A:95int num = 10;String str = "hello";System.out.println(c + num + str); //107helloSystem.out.println(c + str + num); //ahello10System.out.println(c + (num + str)); //a10helloSystem.out.println((c + num) + str); //107helloSystem.out.println(str + num + c); //hello10aSystem.out.println("* *"); //* *System.out.println('*' + '\t' + '*'); //93System.out.println('*' + "\t" + '*'); //* *System.out.println('*' + '\t' + "*"); //51*System.out.println('*' + ('\t' + "*")); //* *}
}

2.关于进制

  • 所有数字在计算机底层都以二进制形式存在
  • 对于整数,有4种表示方式:
    1.二进制(binary):0,1,满2进1。以0b或0B开头
    2.十进制(decimal):0-9,满10进1
    3.八进制(octal):0-7,满8进1。以数字0开头表示
    4.十六进制(hex):0-9及A-F,满16进1。以0x或0X开头表示。此处的A-F不区分大小写。
  • Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位
  • 二进制的整数有如下三种形式:
    1.原码:直接将一个数值换成二进制数。最高位是符号位
    2.负数的反码:是对原码按位取反,只是最高位(符号位)确定为1
    3.负数的补码:其反码加1
  • 计算机以二进制补码的形式保存所有的整数
    1.正数的原码、反码、补码都相同
    2.负数的补码是其反码+1
  • 十进制—>二进制:除2取余的逆,其余进制之间的转换,自寻百度,非常简单

3.运算符

运算符是一种特殊的符号,用以表示数据的运算、赋值和比较等等
Java中主要有:算术运算符、赋值运算符、比较运算符(关系运算符)、逻辑运算符、位运算符、三元运算符

3.1 算数运算符、赋值运算符以及比较运算符:

运算符运算范例结果
+正号+33
-负号b=4;-b-4
+5+510
-6-42
*b=4;-b-4
/b=4;-b-4
%取模(取余)b=4;-b-4
++自增(前):先运算后取值a=2;b=++a;a=3;b=3
++自增(后):先取值后运算a=2;b=a++;a=3;b=2
- -自减(前):先运算后取值a=2;b=- -a;a=1;b=1
- -自减(后):先取值后运算a=2;b=a- -;a=1;b=2
+字符串连接“he”+“llo”“hello”
==相等于4==3false
!=不等于4!=3true
<小于4<3false
>大于4>3true
<=小于等于4<=3false
>=大于等于4>=3true
instanceof检查是否是类的对象“hello” instanceof Stringtrue

3.2 逻辑运算符:(逻辑运算符操作都是boolean类型的变量)

ABA&BA&&BA|BA||B!AA^B
truetruetruetruetruetruefalsefalse
truefalsefalsefalsetruetruefalsetrue
falsetruefalsefalsetruetruetruetrue
falsefalsefalsefalsefalsefalsetruefalse

3.3 位运算符:(位运算是直接对整数的二进制的运算)

  • 位运算符操作的都是整型的数据
  • <<:在一定范围内,每向左移1位,相当于 * 2
  • >>:在一定范围内,每向右移1位,相当于 / 2
    面试题:最高效方式的计算2*8?===> 2<<3 或 8<<1
运算符运算范例
<<左移3<<2 = 12 --> 322=12
>>右移3>>1 = 1 --> 3/2=1
>>>无符号右移3>>>1= 1 --> 3/2=1
&与运算6&3 = 2
|或运算6|3 = 7
^异或运算6^3 = 5
~取反运算~6 = -7
  • 位运算符的细节
运算符细节
<<空位补0,被移除的高位丢弃,空缺位补0
>>被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,空缺位补1
>>>被移位二进制最高位无论是0或是1,空缺位都用0补
&二进制位进行&运算,只有1&1时结果是1,否则是0
|二进制位进行|运算,只有0|0结果是0,否则是1
^相同二进制位进行^运算,结果是0;1^1=0,0^0=0;不相同二进制位进^运算结果是1,1^0=1,0^1=1
~正数取反,各二进制码按补码各位取反;负数取反,各二进制码按补码各位取反

3.4 三元运算符:

  • 结构:(条件表达式)?表达式1 : 表达式2
  • 说明:
    1.条件表达式的结果为boolean类型
    2.根据条件表达式真或假,决定执行表达式1,还是表达式2。如果表达式为true,则执行表达式1;如果表达式为false,则执行表达式2
    3.条件表达式1和表达式2的结果是一致的
    4.三元运算符可以嵌套使用
    5.凡是可以使用三元运算符的地方,都可以改写成if-else,反之不成立
    6.既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符
     double num = (m > n) ? 2 : 1.0; //编译错误String maxStr = (m > n)?"m大"  : ((m==n) ? "m和n相等" : "n大");System.out.println(maxStr);

4.程序流程控制

4.1 顺序结构:

  • 程序从上到下逐行地执行,中间没有任何判断和跳转

4.2 分支结构:

  • 根据条件,选择性地执行某段代码
  • 有if-else和switch-case两种分支语句

4.3 循环结构:

  • 根据循环条件,重复性地执行某段代码
  • 有while、do…while、for三种循环语句
  • 注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素

最后希望大家多多关注我、支持我一下~~,我会持续更新关于JAVA语言的知识和大家一起分享的。


http://chatgpt.dhexx.cn/article/Qg8DspdG.shtml

相关文章

Java基础入门(六)

Java基础入门&#xff08;六&#xff09; 1 Debug调试1.1 Debug概述1.2 Debug操作流程1.2.1 设置断点1.2.2 运行加了断点的程序1.2.3 Debugger窗口和Console窗口1.2.4 分步执行1.2.5 取消断点1.2.6 结束Debug1.2.7 注意事项 2.基础中常用的类2.1 Random随机数2.2 Scanner获取用…

Java基础之入门(一)

文章目录 Java帝国的诞生1. Java初生2. Java的发展3. Java特性和优势4. JVM、JRE、JDK5. Java程序的运行机制6.注释7. 标识符和关键字7.1 关键字7.2 标识符 8. 数据类型8.1 基本数据类型8.1.1 字符案例8.1.2 整型案例8.1.3 浮点型案例 8.2 引用数据类型 9. 类型转换9.1 转换方式…

java入门基础

语法基础 变量和常量 字符串 tring 类型是引用类型 字符串拼接可以直接用加号连接 自动类型转换 向上类型转换&#xff0c;是小类型到大类型的转换。 和C语音一样 int类型可以自动转换为double 但是double需要强制转换才能转换为int 强制类型转换 向下类型转换&…

JAVA基础入门学习

书籍推荐和视频推荐 Java核心卷I java核心卷II可以买也可以不买。java核心卷I只看前9章&#xff0c;其他不用看。身边同学都认为这本书不适合初学者&#xff0c;但是如果你之前看过java学习视频&#xff0c;那么这本书很适合你。这本书主要让你对java知识有个系统的学习&…

JAVA入门及基础

随着技术的不断发展&#xff0c;编程语言的种类也在越来越多&#xff0c;由全国知名TIOBE编程语言社区发布的编程语言排行榜来看&#xff0c;我们的JAVA在近两年来仍然占据榜二榜三&#xff0c;那么能一直稳居前排必然是有他的原因的&#xff1a;我们的JAVA具有使用广泛&#x…

《Java基础入门》第三版--黑马程序员课后习题(编程部分)

第 1 章 Java 开发入门 第 2 章 Java 编程基础 1. 编写程序,计算13…99的值,要求如下&#xff1a; (1)使用循环语句实现1~99的遍历 (2)在遍历过程中,通过条件判断当前的数是否为奇数,如果是就累加,否则不加。 public class getSum { 2 public static void main(String[] ar…

《Java基础入门》笔记——01 Java初步

1 关于Java 1.1 Java的发展简史 Java之父——Gosling(高司令)98年&#xff0c;Java2企业平台J2EE发布99年发布J2SE(标准版)、J2EE(企业版)、J2ME(微型版)04年&#xff0c;发布JavaSE5.009年&#xff0c;Oracle收购Sun14年&#xff0c;发布JavaSE8 1.2 Java语言的特点 简单。…

java基础入门(完整详细版)

前言&#xff1a; 这篇教程对没学过java的完全适用这篇教程是一个学习方向的引导&#xff0c;且只针对基础入门。 一.入门篇 1.安装JDK的运行环境 1.1 下载JDK 直接官网下载&#xff1a;http://www.oracle.com/&#xff1b;链接&#xff1a;网盘安装JDK点击就可以下载(推荐…

Linux udev规则编写

编写本文的目的: 看完本章,朋友们可以进行随心所欲的运用udev,编写udev规则,更好的管理Linux设备。例如,把硬盘sda根据盘的SN码生成一个软连接,使得SN码当做sda一样使用。 在文章结束后,既可以有方案可以实现。 udev是什么? udev 是 Linux2.6 内核里的一个功能,它替代…

udev的rules编写

1.综述 本文简单介绍udev机制&#xff0c;并编写udev规则&#xff0c;实现手机即U盘自动挂载 2.udev介绍 udev 是 Linux2.6 内核里的一个功能&#xff0c;它替代了原来的 devfs&#xff0c;成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行&#xff0c;通过帧听内…

[Linux 基础] -- udev 和 rules 使用规则

前言&#xff1a; 本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件&#xff0c;然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和查询设备信息的实例。本文会使那些需要高效地、方便地管理 Linux 设备的用户受益匪浅&#xff0c;这些用…

linux udev

了解udev (Linux dynamic device management) 1.概述 Udev is the device manager for the Linux kernel. Udev dynamically creates or removes device node files at boot time in the /dev directory for all types of devices. udev is a replacement for the Device File…

udev(六):udev

原创文章&#xff0c;转载请注明出处&#xff0c;谢谢&#xff01; 作者&#xff1a;清林&#xff0c;博客名&#xff1a; 飞 空静渡 <!-- page { margin: 2cm } P { margin-bottom: 0.21cm } --> 基于上面提到的问题&#xff0c;便开始了 udev 的项目。 …

udev(八):实战:使用udevadm修改usb优盘在/dev下的名字

原创文章&#xff0c;转载请注明出处&#xff0c;谢谢&#xff01; 作者&#xff1a;清林&#xff0c;博客名&#xff1a; 飞 空静渡 udev的规则的编写&#xff0c;我这里就不说了&#xff0c;大家可以在udev的文档中可以了解&#xff0c;有时间的话我在安排一…

Linux下udev规则详解

如何运用udev&#xff1f;编写udev规则&#xff1f;通过udev更好的管理Linux设备? udev是什么&#xff1f; udev 是 Linux2.6 内核里的一个功能&#xff0c;它替代了原来的 devfs&#xff0c;成为当前 Linux 默认的设备管理工具。udev 以守护进程的形式运行&#xff0c;通过侦…

Udev设备管理器

udev 引入 在2.4内核中 引入了 devfs&#xff0c;他支持设备节点的动态创建。devfs提供了在内存中的文件系统中创建设备节点的能力。设备驱动程序能够自主的管理自己的设备文件。而命名节点的任务还是落到了设备驱动程序头上。但是&#xff0c;设备命名策略是可管理的&#xf…

linux下udev详解

一.udev简介 udev是一个设备管理工具&#xff0c;udev以守护进程的形式运行&#xff0c;通过侦听内核发出来的uevent来管理/dev目录下的设备文件。udev在用户空间运行&#xff0c;而不在内核空间 运行。它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备…

[2020.1.14][udev] udev介绍

1 什么是udev udev是一种工具&#xff0c;它能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除等。 设备文件通常放在/dev目录下。使用udev后&#xff0c;在/dev目录下就只包含系统中真正存在的设备。 设备访问控制udev:user …

LINUX下 Udev详解

如果你使用Linux比较长时间了&#xff0c;那你就知道&#xff0c;在对待设备文件这块&#xff0c;Linux改变了几次策略。在Linux早期&#xff0c;设备文件仅仅是是一些带有适当的属性集的普通文件&#xff0c;它由mknod命令创建&#xff0c;文件存放在/dev目录下。后来&#xf…

wmic bug

今天尝试用wmic进行横向移动&#xff0c;老是出现 , - Alias not found&#xff0c;再三确认不是命令的问题&#xff0c;尝试修改域控用户的密码后成功解决&#xff0c;难道这时wmic的bug&#xff1f;&#xff1f;&#xff1f; 猜测是因为密码种含有 , . 这样的符号导致命令产生…