java基础-第1章-走进java世界
一、计算机基础知识
常用的DOS命令
二、计算机语言介绍
三、Java语言概述
四、Java环境的搭建
JDK安装图解
环境变量的配置
配置环境变量意义
配置环境变量步骤
五、第一个Java程序
编写Java源程序
编译Java源文件
运行Java程序
六、Java语言运行机制
核心机制—Java虚拟机
核心机制—垃圾回收
一、计算机基础知识
常用的DOS命令
进入 DOS操作窗口
按下 Windows+R键盘,打开运行窗口,输入cmd回车,进入到DOS的操作窗口。
打开 DOS命令行后,看到一个路径 c:\user 就表示我们现在操作的磁盘是c盘。
常用命令
1.切换盘符:盘符名加冒号,回车
2.退出到当前目录的根目录:cd (change directory)
3.退回到上一层目录:cd …
4.进入某个目录:cd 目录名
5.列出目录下的内容:dir
6.创建文件夹:md 目录名(make directory)
7.创建文件并写入内容:
echo 内容>文件名
追加内容
echo 内容>>文件名
8.删除文件:
del 文件名(delete)
9.删除文件夹
rmdir 目录名,删除空目录(remove directory)(只能删除空的文件夹)
10.清屏:cls
11.查看ip地址ipconfig
12. 测试网络是否连通ping
13.退出:exit
二、计算机语言介绍
什么是计算机语言
语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用普通话沟通。而
中国人要和英国人交流,就要学习英语。
计算机语言:人与计算机交流的方式。
如果人要与计算机交流,那么就要学习计算机语言。
计算机语言有 很多种 。 如:C ,C++ ,Java ,PHP , Kotlin ,Python ,Scala等 等
第一代语言
机器语言。指令以二进制代码形式存在。
使用 0 和 1 的二进制码,但是在做计算的时候,比如 128 ,我们要写为 10000000,其它的数以此类
推,如果再做计算就会变的非常的不尽人意,如果想要显示 HelloWorld,可能要几百个 01 的组合,可
读性差,难以查错!(智商不够用)
第二代语言
汇编语言?
汇编语言的主题是汇编指令
汇编指令和机器指令的差别在于指令的表示方法上。
汇编指令是机器指令便于记忆的书写格式。
第三代语言:高级语言
C、Pascal、Fortran面向过程的语言
C++面向过程/面向对象
Java 跨平台的纯面向对象 的语言
.NET跨语言的平台
Python、Scala…
三、Java语言概述
Sun Microsystems于1995年推出的面向对象的程序设计语言,共同创始人的詹姆斯·高斯林 (James Gosling)被誉为“Java之父”。
是一种面向Internet的编程语言。Java一开始富有吸引力是因为Java程序可以
在Web浏览器中运行。这些Java程序被称为Java小程序(applet)。applet使
用现代的图形用户界面与Web用户进行交互。 applet内嵌在HTML代码中。
随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。
Java的历史
1996年发布JDK 1.0
1998年发布JDK 1.2
平台名称:J2SE(Stadard Edition)、J2EE(Enterprise Edition)、J2ME(Micro Edition)
2004年发布JDK 1.5 版本更名:Java 5.0
平台名称:Java SE、Java EE、Java ME
2006年发布Java 6.0
2009年被Oracle收购
2011年由Oracle发布Java 7.0
2014年由Oracle发布Java 8.0
2017年由Oracle发布Java 9.0
2019年由Oracle发布Java 14.0
Java的语言特点
面向对象(贴近人类思维模式,模拟现实世界,解决现实问题)。
简单性(自动内存管理机制、不易造成内存溢出;简化流程处理、语义清晰)
跨平台(操作系统、服务器等)。
Java技术体系平台
Java SE(Java Standard Edition)标准版
支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核
心API,此版本以前称为J2SE
Java EE(Java Enterprise Edition)企业版
是为开发企业环境下的应用程序提供的一套解决方案。该技术体系中包含的技术如
:Servlet 、Jsp等,主要针对于Web应用程序开发。版本以前称为J2EE
Java ME(Java Micro Edition)小型版
支持Java程序运行在移动终端(手机、PDA)上的平台,对Java API有所精简,并加
入了针对移动终端的支持,此版本以前称为J2ME
四、Java环境的搭建
Java 虚拟机——JVM
JVM (Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的
运行环境,是Java 最具吸引力的特性之一。我们编写的Java代码,都运行在 JVM 之上。
**跨平台 **:任何软件的运行,都必须要运行在操作系统之上,而我们用Java编写的软件可以运行在任何的操作系
统上,这个特性称为Java语言的跨平台特性。该特性是由JVM实现的,我们编写的程序运行在JVM上,而JVM
运行在操作系统上。
JRE 和JDK
JRE Java Runtime Eviroment 是用来运行Java环境的
JDK Java Development Kit 是开发者工具包
三者关系: JDK > JRE > JVM
JDK安装图解
- 打开网页
http://www.oracle.com
下载对应平台的合适的 JDK 版本。
- 双击下载的 exe,如 jdk-8u131-windows-x64.exe。
- 进入安装向导。
- 下一步,更改安装路径,选择安装所有组件
更改为 D:\developer_tools\Java\jdk1.8.0_131
点击确定
- 下一步,开始安装
6.完成安装
环境变量的配置
配置环境变量意义
开发Java程序,需要使用JDK中提供的工具,工具在JDK安装目录的 bin 目录下。
在DOS命令行下使用这些工具,就要先进入到JDK的bin目录下,这个过程就会非常的麻烦。
不进入JDK的 bin 目录,这些工具就不能使用,会报错。
为了开发方便,我们想在任意的目录下都可以使用JDK的开发工具,则必须要配置环境变量,配置环境变量的意义
在于告诉操作系统,我们使用的JDK开发工具在哪个目录下。
配置环境变量步骤
Windows 7,8版本
- 计算机鼠标右键,选择 属性
- 选择 高级系统设置
- 高级 选项卡,点击 环境变量
- 点击 新建 ,创建新的环境变量
- 变量名输入 JAVA_HOME ,变量值输入JDK的安装目录
- 选中 Path 环境变量, 双击 或者 点击编辑
- 在变量值的最前面,键入 %JAVA_HOME%\bin ; 分号必须要写,必须是英文格式。
- 环境变量配置完成,重新开启DOS命令行,在任意目录下输入 javac 命令,运行成功。
Windows 10 版本
- 文件资源管理器 --> 此电脑鼠标右键 --> 选择 属性
- 选择 高级系统设置 --> 选择 环境变量
- 点击下方系统变量的 新建 ,创建新的环境变量,变量名输入 JAVA_HOME ,变量值输入JDK的安装目录
- 选中 Path 环境变量, 双击 或者 点击编辑
- 点击 新建 ,键入 %JAVA_HOME%\bin ,必须是英文格式。选中该行,上移到最上方,点击确定。
- 环境变量配置完成,重新开启DOS命令行,在任意目录下输入 javac 命令。
注意:
Java开发环境不再需要配置classpath!
https://www.cnblogs.com/ideal-20/p/11050114.html
五、第一个Java程序
开发环境已经搭建完毕,可以开发我们第一个Java程序了。
Java程序开发三步骤:编写、编译、运行。
编写Java源程序
public class HelloWorld { public static void main(String[] args) { System.out.println(“Hello World!”); } }
文件名必须是 HelloWorld ,保证文件名和类的名字是一致的,注意大小写。
每个字母和符号必须与示例代码一模一样。
第一个 HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我
们必须将编写好的 Java 源文件 编译成JVM可以看懂的 字节码文件 。
编译Java源文件
在DOS命令行中,进入Java源文件的目录,使用 javac 命令进行编译。
javac: java compile
命令:
javac xxx.java
举例:
javac HelloWorld.java
如果程序无误,那么在该目录下,会产生同名的字节码文件:xxx.class
运行Java程序
在DOS命令行中,进入Java源文件的目录,使用 java 命令进行运行。
命令:
java 类名字
举例:
java HelloWorld
java HelloWord 不要写 不要写 不要写 .class
第一个程序注意点:
编译 :是指将我们编写的Java源文件翻译成JVM认识的class文件,在这个过程中, javac 编译器会检查我们
所写的程序是否有错误,有错误就会提示出来,如果没有错误就会编译成功。
运行 :是指将 class 文件 交给JVM去运行,此时JVM就会去执行我们编写的程序了。
main 方法:称为主方法,固定书写格式:public static void main(String[] args){…},是程序的入口。
**注释 :解释程序,给人看的
Java 中有单行注释和多行注释
单行注释以 // 开头 换行结束
多行注释以 / 开头 以/结束
关键字 :是指在程序中,Java已经定义好的单词,具有特殊含义。
标识符 :凡是自己起名字的,比如类的名字、方法的名字和变量的名字等等,都是标识符。
六、Java语言运行机制
核心机制—Java虚拟机
JVM 是一个虚拟的计算机,具有指令集并使用不同的存储区域。负责执行指 令,管理数据、内存、寄存器。
对于不同的平台,有不同的虚拟机。
只有某平台提供了对应的java虚拟机,java程序才可在此平台运行
Java虚拟机机制屏蔽了底层运行平台的差别,实现了“一次编译,到处运行”
核心机制—垃圾回收
不再使用的内存空间应回收—— 垃圾回收。
在C/C++等语言中,由程序员负责回收无用内存。
Java 语言消除了程序员回收无用内存空间的责任:它提供一种系统级线程跟踪存储空 间的分配情况。并在JVM空闲时,检查并释放那些可被释放的存储空间。
垃圾回收在Java程序运行过程中自动进行,程序员无法精确控制和干预。
相关文章:

java基础-第1章-走进java世界
一、计算机基础知识 常用的DOS命令 二、计算机语言介绍 三、Java语言概述 四、Java环境的搭建 JDK安装图解 环境变量的配置 配置环境变量意义 配置环境变量步骤 五、第一个Java程序 编写Java源程序 编译Java源文件 运行Java程序 六、Java语言运行机制 核心机制—Java虚拟机 核…...
jvm 堆内存 栈内存 大小设置
4种方式配置不同作用域的jvm的堆栈内存。 1、Eclise 中设置jvm内存: 改动eclipse的配置文件,对全部project都起作用 改动eclipse根文件夹下的eclipse.ini文件 -vmargs //虚拟机设置 -Xms40m //初始内存 -Xmx256m //最大内存 -Xmn16m //最小内存 -XX:PermSize=128M //非堆内…...

免杀对抗-反沙盒+反调试
反VT-沙盒检测-Go&Python 介绍: 近年来,各类恶意软件层出不穷,反病毒软件也更新了各种检测方案以提高检率。 其中比较有效的方案是动态沙箱检测技术,即通过在沙箱中运行程序并观察程序行为来判断程序是否为恶意程序。简单来说…...
QTimer类的使用方法
本文介绍QTimer类的使用方法。 1.单次触发 在某些情况下,定时器只运行一次,可使用单次触发方式。 QTimer *timer new QTimer(this); connect(timer, &QTimer::timeout, this, &MainWindow::timeout); timer->setSingleShot(true); timer-…...
(三)行为模式:9、空对象模式(Null Object Pattern)(C++示例)
目录 1、空对象模式(Null Object Pattern)含义 2、空对象模式的主要涉及以下几个角色 3、空对象模式的应用场景 4、空对象模式的优缺点 (1)优点 (2)缺点 5、C实现空对象模式的实例 1、空对象模式&am…...

Django实战项目-学习任务系统-用户登录
第一步:先创建一个Django应用程序框架代码 1,先创建一个Django项目 django-admin startproject mysite将创建一个目录,其布局如下:mysite/manage.pymysite/__init__.pysettings.pyurls.pyasgi.pywsgi.py 2,再创建一个…...

【动手学深度学习-Pytorch版】Transformer代码总结
本文是纯纯的撸代码讲解,没有任何Transformer的基础内容~ 是从0榨干Transformer代码系列,借用的是李沐老师上课时讲解的代码。 本文是根据每个模块的实现过程来进行讲解的。如果您想获取关于Transformer具体的实现细节(不含代码)可…...

做外贸独立站选Shopify还是WordPress?
现在确实会有很多新人想做独立站,毕竟跨境电商平台内卷严重,平台规则限制不断升级,脱离平台“绑架”布局独立站,才能获得更多流量、订单、塑造品牌价值。然而,在选择建立外贸独立站的过程中,选择适合的建站…...

echarts的bug,在series里写tooltip,不起作用,要在全局先写tooltip:{}才起作用,如果在series里写的不起作用就写到全局里
echarts的bug,在series里写tooltip,不起作用,要在全局先写tooltip:{show:true}才起作用,如果在series里写的不起作用就写到全局里 series里写tooltip不起作用,鼠标悬浮在echarts图表上时不显示提示 你需要…...

jmeter分布式压测
一、什么是压力测试? 压力测试(Stress Test),也称为强度测试、负载测试,属于性能测试的范畴。 压力测试是模拟实际应用的软硬件环境及用户使用过程的系统负荷,长时间或超大负荷地运行被测软件系统ÿ…...

consulmanage部署
一、部署consul 使用yum方式部署consul yum install -y yum-utils yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo yum -y install consul 执行以下命令获取uuid密钥并记录下来 uuidgen 编辑consul配置文件 vi /etc/consul.d/consul.h…...

大数据软件项目的验收流程
大数据软件项目的验收流程是确保项目交付符合预期需求和质量标准的关键步骤。以下是一般的大数据软件项目验收流程,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.项目验收计划制定: 在…...

《第一行代码Andorid》阅读笔记-第一章
这篇文章是我自己的《第一行代码Andorid》的阅读笔记,虽然大量参考了别人已经写好的一些笔记和代码但是也有自己的提炼和新的问题在里面,我也会放上参考文章链接。 学习重点 Android系统的四大组件: (1)活动ÿ…...
Educational Codeforces Round 146 (Rated for Div. 2)(VP)
写个题解 A. Coins void solve(){ll n, k; cin >> n >> k;bl ok true;if (n &1 && k %2 0) ok false;print(ok ? yes : no); } B. Long Legs void solve(){db x, y; cin >> x >> y;if (x < y) swap(x, y);int t1 ceil(sqrt(x))…...
9.30国庆
消息队列完成进程间通信 #include <myhead.h>#define size sizeof(msg_ds)-sizeof(long) //正文大小//消息结构体 typedef struct {long msgtype; //消息类型char data[1024]; //消息正文 }msg_ds;//创建子线程构造体 void *task1(void *arg) {//创造第二个key值ke…...

java基础-第4章-面向对象(二)
一、static关键字 静态(static)可以修饰属性和方法。 称为静态属性(类属性)、静态方法(类方法)。 静态成员是全类所有对象共享的成员。 在全类中只有一份,不因创建多个对象而产生多份。 不必创…...
flex加 grid 布局笔记
<style> .flex-container { display: flex; height: 100%; /* 设置容器的高度 */ } .wide { display: flex; padding: 10px; border: 1px solid lightgray; text-align: center; justify-content: …...

最高评级!华为云CodeArts Board获信通院软件研发效能度量平台先进级认证
9月26日,华为云CodeArts Board获得了中国信通院《云上软件研发效能度量分级模型》的先进级最高级评估,达到了软件研发效能度量平台评估的通用效能度量能力、组织效能模型、项目效能模型、资源效能模型、个人效能模型、研发效能评价模型、项目管理域、开发…...

图像上传功能实现
一、后端 文件存放在images.path路径下 package com.like.common;import jakarta.servlet.ServletOutputStream; import jakarta.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annot…...

03_Node.js模块化开发
1 Node.js的基本使用 1.1 NPM nodejs安装完成后,会跟随着自动安装另外一个工具npm。 NPM的全称是Node Package Manager,是一个NodeJS包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。 2020年3月17日&…...

(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...

Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...

Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...

数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
ubuntu22.04 安装docker 和docker-compose
首先你要确保没有docker环境或者使用命令删掉docker sudo apt-get remove docker docker-engine docker.io containerd runc安装docker 更新软件环境 sudo apt update sudo apt upgrade下载docker依赖和GPG 密钥 # 依赖 apt-get install ca-certificates curl gnupg lsb-rel…...

spring Security对RBAC及其ABAC的支持使用
RBAC (基于角色的访问控制) RBAC (Role-Based Access Control) 是 Spring Security 中最常用的权限模型,它将权限分配给角色,再将角色分配给用户。 RBAC 核心实现 1. 数据库设计 users roles permissions ------- ------…...