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

article/2025/9/23 15:59:42

1 关于Java

1.1 Java的发展简史

  • Java之父——Gosling(高司令)
  • 98年,Java2企业平台J2EE发布
  • 99年发布J2SE(标准版)、J2EE(企业版)、J2ME(微型版)
  • 04年,发布JavaSE5.0
  • 09年,Oracle收购Sun
  • 14年,发布JavaSE8

1.2 Java语言的特点

  • 简单。丢弃了C++中的运算符重载、多重继承 等复杂概念;将引用替代指针;提供自动的垃圾回收机制,不必忧心内存管理
  • 面向对象。只支持类之间的单继承,但支持接口之间的多继承,并支持类与接口之间的实现机制
  • 安全。不支持指针,不能非法访问内存
  • 跨平台。Java程序一次编译、处处可用,可移植性好。程序只需开发一次,就可以在各种安装了JVM的系统平台上运行(PS:Java程序跨平台,但JVM不跨平台,有各种版本,如Windows、Linux等)
  • 支持多线程。程序中有多个任务可以并发执行
  • 强类型语言。使用变量前需要声明类型

1.3 Java的关键术语

  • Architecture neutral 结构中立
  • Object oriented 面向对象
  • Portable 可移植
  • Distributed 分布式的
  • High performance 高性能
  • Multithreaded 多线程的
  • Robust 健壮
  • Dynamic 动态的
  • API(Application Programming Interface) 应用程序编程接口
  • Java SE(Java Platform,Standard Edition) Java平台标准版
  • Java EE(Java Platform,Enterprise Edition) Java平台企业版
  • Java ME(Java Platform,Micro Edition) Java平台微型版
  • JVM(Java Virtual Machine) 虚拟机
  • JDK(Java Development Kit) Java开发工具包
  • JRE(Java Runtime Environment) Java运行环境

1.4 Java的运行平台

  1. Java SE (Java Platform,Standard Edition)
    用于开发桌面应用
  2. Java EE (Java Platform,Enterprise Edition)
    用于开发企业级应用,被广泛认可
  3. Java ME (Java Platform,Micro Edition)
    用于开发移动设备上的软件,不被认可,取而代之的是使用Android 或 IOS

1.5 JDK详述

1.5.1 JDK发展史

在这里插入图片描述
LTS版本有 JDK 8、11、17,很多企业还在使用JDK 8

1.5.2 JDK的构成

  1. 开发工具(javac、java等)
  2. Java核心类库
  3. JVM(Java程序运行的地方)
    PS:其中 2 和 3 构成JRE

1.5.3 Java安装目录

  1. bin
    用于存放一些可执行程序,包含javac.exe(编译程序)、java.exe(执行程序)、jar.exe(打包工具)、javadoc.exe(文档生成工具)
  2. db
    一个小型数据库
  3. jre
    Java运行时环境的根目录,包含JVM、运行时的类包、Java应用启动器、bin目录
  4. include
    用于存放启动JDK所需的C头文件
  5. lib
    用于存放Java类库或库文件
  6. src.zip文件
    包含JDK核心类的源代码

1.6 Java源文件

  • 后缀名为".java"
  • 基本组成是类
  • 最多只有一个public类,其他类个数不限。若源文件包含一个public类,文件名要和类名相同
  • 程序执行入口是main( )方法

PS:在同一个Java源文件中,public类和main方法都是唯一的

2 基础知识

2.1 标识符命名规则

(1)标识符可由字母、数字、下划线、美元符号($)组成
(2)不能以数字开头
(3)不能以关键字命名
(4)命名时尽量见名知意
(5)包名(package)一律小写,如test
(6)常量名一律大写,单词间用下划线连接,如DAY_OF_MONTH
(7)类名接口名单词首字母大写,如ArrayList(大驼峰)
(8)变量名方法名采用“驼峰命名法”,如getMaxValue(小驼峰)

2.2 注释

 // 单行注释/*……*/ 多行注释/**……*/ 文档注释

2.3 常量

  1. 整型
    (1)十进制
    (2)二进制。以0b开头,如0b01111111
    (3)八进制。以0开头,0177
    (4)十六进制。以0x开头,0x7F
  2. 浮点型
    (1)float。后缀为f/F,如1.3f
    (2)double。后缀为d/D,如3.6d
  3. 字符型
    (1)普通字符。如’a’
    (2)转义字符。如’\n’
  4. 字符串型。如"peace"
  5. 布尔型。true,false
  6. null型,表示对象的引用为空

2.4 变量

2.4.1 基本数据类型(4大类8种)

  1. 整型
    (1)byte。大小:1字节(8位),取值范围:-128~127
    (2)short。大小:2字节(16位),取值范围:-32768~32767
    (3)int(默认类型)。大小:4字节(32位),取值范围:-21亿↗~21亿↗
    (4)long(后缀:l/L)。大小:8字节(64位),取值范围:-900亿亿↗~900亿亿↗
    PS:
    (1)Java7开始,加前缀0b可书写二进制数,如0b1001→9
    (2)Java7开始,数字可加下划线以便阅读,如1_000_000一百万

  2. 浮点型
    (1)float(后缀:f/F)
    大小:4字节(32位),有效位数:6~7位
    (2)double(默认类型)
    大小:8字节(64位),有效位数:15位
    PS:表数形式
    (1)小数
    (2)指数,如1e-6

  3. 字符型
    char。大小:2字节,取值范围:0~65535

  4. 布尔型
    boolean,取值:true、false

2.4.2 引用数据类型

  • 类(class)
  • 接口(interface)
  • 数组
  • 枚举(enum)
  • 注解(annotation)

2.5 运算符

2.5.1 逻辑运算符

  • &(与)、|(或)、^(异或)
  • !(非)、&&(短路与)、||(短路或)
    PS:实际开发中、常用的逻辑运算符是:&& 、 || 、 !

2.5.2 位运算符

  1. 按位与 &

  2. 按位或 |

  3. 按位异或 ^
    (1)交换律 a ^ b = b ^ a
    (2)结合律 (a ^ b) ^ c = a ^ ( b ^ c)
    (3)n ^ n = 0;n ^ 0 = n
    (4)自反性a ^ b ^ b = a ^ 0 = a

  4. 按位取反~

  5. 左移位<<

  6. (有符号)右移位>>
    移位时带符号,高位补符号位(正数补0,负数补1,因为数据在计算机中用补码表示)

  7. (无符号)右移位>>>
    移位时不带符号,高位补0

tips:位运算骚操作
(1)判断奇偶数
将该数和1作&运算,值为0→偶数;值为1→奇数
(2)判断二进制某位是0/1
将该位数右移到末尾,用判断奇偶性的方法
(3)交换两个整型变量值

a = a ^ b
b = a ^ b
a = a ^ b

2.5.3 扩展赋值运算符

在这里插入图片描述
PS:扩展的赋值运算符隐含了强制类型转换。

2.5.4 运算符优先级

在这里插入图片描述

2.6 switch语句

switch(表达式)…
PS:Java的上述表达式支持byte、short、int、char、enum、String类型(C/C++仅支持char和int)

3 方法

3.1 方法的定义

修饰符 返回值类型 方法名(参数列表){//执行语句return 返回值;
}

PS:修饰符
1.访问权限
(1)private:当前类访问级别(访问范围仅限于本类)
(2)default:包访问级别(同一个包下的类都可以访问)
(3)protected:子类访问级别(同一个包下的其他类,以及不同包中该类的子类可以访问)
(4)public:公共访问级别(可以被所有类访问,不论是否在同一个包中)
若一个类或类的成员没有访问控制修饰符,则默认为default,访问范围仅限本包内

2.静态修饰符static
3.最终修饰符final

3.2 方法的重载

  • 方法名相同,返回值和参数列表有所不同
public class MethodOverride {public static void main(String[] args) {System.out.println("sum1 = " +  add(1, 2));System.out.println("sum2 = " + add(1, 2, 3));System.out.println("sum3 = " + add(1.2, 2.3));}// 两个整数相加public static int add(int x, int y) {return x + y;}// 三个整数相加public static int add(int x, int y, int z) {return x + y + z;}// 两个小数相加public static double add(double x, double y) {return x + y;}
}

3.3 方法的递归

public class Demo {public static void main(String[] args) {Scanner in = new Scanner(System.in);int n = in.nextInt();System.out.println("1+2+……+" + n +" = " + sum(n));}//计算1+2+……+npublic static int sum(int n) {if(n == 1)	return 1;	//递归出口return n + sum(n-1);	//子问题}
}

4 数组

4.1 一维数组的定义

方式一:

int[] arr = new int[4];      //定义可以存储4个整数的数组,自动初始化为0

方式二:

int [] arr = new int[]{1, 2, 3, 4};    //动态分配内存并初始化

方式三:

int [] arr = {1, 2, 3, 4};   //静态初始化 

4.2 二维数组的定义

方式一:

int [][] arr = new int[3][4];    //定义一个3行4列的二维数组

方式二:

int [][] arr = new int[3][];    //定义一个3行的二维数组,列数不定

方式三:

int [][] arr = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9, }};    //定义一个二维数组并初始化

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

相关文章

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; 猜测是因为密码种含有 , . 这样的符号导致命令产生…

wmic命令学习

我目前知道wmic可以查询进程&#xff0c;还可以查询服务。查询进程使用wmic process,如果想知道进程的名字、进程号、执行文件路径可以通过get来获取&#xff0c;还可以根据where筛选进程进行查询。 wmic process get name, processid,executablepath 查询主机进程信息&#xf…

Windows 命令 WMIC 使用详解

WMIC扩展WMI&#xff08;Windows Management Instrumentation&#xff0c;Windows管理工具&#xff09; &#xff0c;提供了从命令行接口和批命令脚本执行系统管理的支持。在WMIC出现之前&#xff0c;如果要管理WMI系统&#xff0c;必须使用一些专门的WMI应用&#xff0c;例如S…

wmic java_Java执行wmic命令获取系统环境变量

1.首先编写文件setenv.bat设置系统环境变量&#xff1a; echo %cd% set framework_home%cd% echo %framework_home% wmic ENVIRONMENT create name"framework_home",username"",VariableValue"%framework_home%" Note: 此处假设framework_home为…

wmic命令

友情链接&#xff1a;wmic命令 目录 一、如何获取帮助文档 &#xff08;1&#xff09;wmic /? &#xff08;2&#xff09;wmic nic /? &#xff08;3&#xff09;wmic nic get ##获取网卡所有信息&#xff0c;如下只列出部分列 &#xff08;4&#xff09;信息筛…

内网渗透 | powershellwmic详解

文章目录 引子PowerShell0x001基本概念0x002命令格式0x003基本使用0x004常用命令0x005powershell脚本0x006参考文章 WMIC0x001基本概念0x002命令格式0x003常用命令1、目标系统相关2、用户管理 0x004参考文章 引子 之前在内网渗透&#xff0c;免杀中到处能看到powershell和wmic的…

wmic横向

WMI&#xff0c;是Windows 2K/XP管理系统的核心&#xff1b;对于其他的Win32操作系统&#xff0c;WMI是一个有用的插件。WMI以CIMOM为基础&#xff0c;CIMOM即公共信息模型对象管理器&#xff08;Common Information Model Object Manager&#xff09;&#xff0c;是一个描述操…

【转】wmic命令

友情链接&#xff1a;wmic命令 目录 一、如何获取帮助文档 &#xff08;1&#xff09;wmic /? &#xff08;2&#xff09;wmic nic /? &#xff08;3&#xff09;wmic nic get ##获取网卡所有信息&#xff0c;如下只列出部分列 &#xff08;4&#xff09;信息筛选 二、…