由浅到深认识Java语言(2):Java语言概述

该文章Github地址:https://github.com/AntonyCheng/java-notes

在此介绍一下作者开源的SpringBoot项目初始化模板(Github仓库地址:https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址:https://blog.csdn.net/AntonyCheng/article/details/136555245),该模板集成了最常见的开发组件,同时基于修改配置文件实现组件的装载,除了这些,模板中还有非常丰富的整合示例,同时单体架构也非常适合SpringBoot框架入门,如果觉得有意义或者有帮助,欢迎Star & Issues & PR!

上一章:由浅到深认识Java语言(1):前提概要

3.Java语言概述

创立者:詹姆斯·高斯林;

语言开发平台版本:J2SE基础语法版、J2ME移动版(已经不用了)、J2EE企业版(主流);

特点简单性、解释性、面向对象、高性能、分布式处理、多线程、健壮性、动态、结构中立、安全性、开源跨平台

Java跨平台的实现:Java语言不是运行在操作系统上的,而是运行在Java虚拟机上(JVM),Java为各个操作系统都开发了相对应的平台

Java开发工具

JDK下载:

  • JDK (Java Development Kit):Java开发工具集;
  • 下载官网:www.oracle.com

JDK卸载:

在控制面板中找到“程序和功能”,找到Java SE development kit ,点击卸载;

JRE

java runtime environment :java 运行环境(java 虚拟机在其中),JDK 中自带有 JRE;

验证JDK是否成功安装

用命令提示符来运行 Java 安装包里 bin 文件夹中的 javac.exe,如果看到大篇幅的提示文字,就代表安装成功;

配置环境变量

  • 环境变量的作用:

    为了让在文件系统的任意位置都能使用JDK中的命令,也就是说,当在命令提示符中输入java命令时,系统就会去环境变量中的变量名时Path的值中的各个路径中去寻找“java.exe”,从上往下找,找到就执行,找不到就报错;

  • 配置 JAVA_HOME 的作用:

    我们在使用第三方开发工具需要有JDK,这些工具会自动去环境变量中找变量名是 JAVA_HOME 的变量,如果找不到,这些工具就没有办法使用;

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

Java程序的运行机制

图解如下:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

编译:把程序员写的 java 程序编译成机器能看懂的二进制(字节码)文件,就必须用到 javac 源文件 命令,此时会产生一个字节码文件(.class 文件);

运行:使用 Java 源文件 命令,把字节码文件运行在虚拟机上;

4.Java程序详解

public class HelloWorld{
    public static void main(string[] args){
        System.out.println("Hello World!");
    }
}

图解

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意

  1. 任何一个 java 程序都是一个 class (类);

  2. 类的内容由一对{}包裹;

  3. 设计 java 类,实际上就是设计类的内容,类的内容有:

    • 入口函数:JVM 要运行此程序的入口;

      public static void main(String[] args){
      
      }
      
      这个写法是固定的
  4. java 每一条语句都是以 ; 结束;

  5. 一个 .java 文件中可以有多个 class 声明的类;

  6. 当编译一个 java 文件时,会根据文件中的类,生成相对应的类的字节码文件,也就是说编译产生的 ·.class 文件就是一个描述类的文件;

  7. 一个类可以被 public 修饰,也可以不修饰,如果一个类被 public 修饰,那么该类所在文件的文件名必须和该类的类名完全相同;

  8. 一个 .java 文件中只能有一个类被 public 修饰,以防出错;

  9. 一个 .java 文件可以有多个入口函数;

  10. 一个类中不可能出现多个入口函数;

  11. .java 程序对大小写敏感;

  12. Java的注释;

    我们一定要养成写注释的习惯;

    • 单行注释

      //这是单行注释,注释的范围就是后面的单行内容
      
    • 多行注释

      /*
      这是多行注释
      注释的范围是注释所包含的内容
      */
      
    • 文档注释

      /**
      这是一个文档注释,当将Java程序形成说明文档时,此时文档注释的内容将被收集
      */
      

5.二进制的原/反/补码

补码:底层所存储的字符码;

原码:适用于做二进制和十进制之间转换的码;

反码:适用于转换补码和原码;

负数的八位二进制转十进制例如下:

1000 0001(补码) == 补码 - 1 ==> 1000 0000(反码) == 符号位外,所有位取反 ==> 1111 1111(原码) ==> -127

1011 0011(补码) == 补码 - 1 ==> 1011 0010(反码) == 符号位外,所有位取反 ==> 1100 1101(原码) ==> -77

1001 0011(补码) == 补码 - 1 ==> 1001 0010(反码) == 符号位外,所有位取反 ==> 1110 1101(原码) ==> -109

负数的十进制转八位二进制例如下:

-16 ==> 1001 0000(原码 == 符号位外,按位取反 ==> 1110 1111(反码) == 反码 + 1 ==> 1111 0000(补码)

下一章:由浅到深认识Java语言(3):关键字&变量&常量

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

CSS案例-4.padding导航栏练习

效果 相关数据: 上边框:3px,颜色#ff8500 下边框:1px,颜色#edeef0 背景颜色:#fcfcfc 高度:41px 内边距20px 字体颜色#4c4c4c 知识点 盒子边框border 属性 作用 border-width 定义边框粗细,单位px border-style 边框的样式 border-color 边框颜色 边框样式

拿捏指针(三)

✨✨欢迎👍👍点赞☕️☕️收藏✍✍评论 个人主页:秋邱博客 所属栏目:C语言 (感谢您的光临,您的光临蓬荜生辉) 前言 在这之前我们学习了《拿捏指针(一)》,《拿…

Ansible基本介绍与模块使用

目录 引言 一、Ansible简介 (一)基本概述 (二)主要特点 二、Ansible安装及基本组件 (一)yum安装 (二)编译安装 (三)基本配置信息 1.主配置文件 2.主…

【Linux】自动化构建工具-make/Makefile

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. 认识make/Makefile3. 了解make/Makefile原理3.1 依赖关系和依赖方法3.2 make检测的顺序3.3 PHONY:XXX 4. makefile内置符号 1. 前言 在上一篇中已经了解了【Linux】编译器-gcc/g使用,这次来一起…

01|模型IO:输入提示、调用模型、解析输出

Model I/O 可以把对模型的使用过程拆解成三块,分别是输入提示(对应图中的Format)、调用模型(对应图中的Predict)和输出解析(对应图中的Parse)。这三块形成了一个整体,因此在LangCha…

idea将非UTF-8的properties修改为UTF-8编码的文件

需求背景 由于项目初始化时,properties文件的编码格式为ASCII编码格式,此时用idea打开该文件会默认展示UTF-8的编码内容,其中汉字可以正常展示,但是使用notepad打开却依旧时ASCII编码格式 idea配置 打开idea-setting-editor-f…

TCP - 传输控制协议

TCP - 传输控制协议 是一种面向连接的可靠传输协议。 特点: TCP是面向连接(虚连接)的传输层协议。 每一条TCP连接有且只能有两个端点。 可靠、有序、无丢弃和不重复。 TCP协议提供全双工通讯。 发送缓存 存放发送方TCP准备发送的数据。T…

Springboot笔记-01

简化spring应用开发,约定大于配置 简化Spring应用开发的一个框架; 整个Spring技术栈的一个大整合; J2EE开发的一站式解决方案; 优点: 快速创建独立运行的spring项目以及于主流框架集成 使用嵌入式的Servlet容器&#x…

Reactor线程模型

线程模型 一、背景1.socket网络通信2.IO模型与线程模型3.线程模型分类3.1 阻塞模型3.2 Reactor模型3.3 Proactor模式 二、阻塞模型1.代码示例 三、Reactor模型1.单Reactor单线程1.1 处理过程1.2 优缺点1.3 代码示例 2.单Reactor多线程2.1 处理机制2.2 优缺点 3.主从Reactor3.1 …

深度学习_卷积

卷积 卷积(Convolution)是数学和计算机科学中的一个重要概念,特别在信号处理和图像处理中应用广泛。在信号处理领域,卷积是两个函数之间的一种数学操作,它表示两个函数的重叠部分的积分量。 在图像处理中&#xff0c…

JavaScript数组排序sort自定义函数不生效

背景 刷LeetCode时,遇到一道简单的数组排序题: 问题 想着直接用js的数组sort自定义排序即可,奈何测试用例运行总是不通过,返回的一直都是原数组。 代码排查 复制代码到Firefox浏览器控制台运行,结果输出的是正确结果&a…

搭建Hadoop集群(完全分布式运行模式)

目录 一、准备模板机(最小化安装)二、配置一台纯净的模板机修改主机名固定IP地址通过yum安装方式安装必要的软件关闭防火墙且禁止自启修改hosts映射文件创建普通用户 并让他能用sudo命令在/opt下创建software和module完成 三、搭建完全分布式运行模式3.1克隆第一台机器hadoop10…

基于PCA(主成分分析)的人面识别,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

Vue学习日记 Day7 —— json-server工具、基于VueCli自定义创建项目、postcss插件

一、前一天Vuex总结 1、state作用:存放数据定义:state:{//数据 }使用://放在data下(1)根节点直接访问this.$store.state.数据名(2)模块直接访问this.$store.state.模块名.数据名(3)根节点辅助函数mapState([所需要的数据])(4)模块辅助…

JDK21虚拟线程

目录 虚拟线程 话题 什么是平台线程? 什么是虚拟线程? 为什么要使用虚拟线程? 创建和运行虚拟线程 使用线程类和线程创建虚拟线程。生成器界面 使用Executor.newVirtualThreadPerTaskExecutor()方法创建和运行…

【一】【单片机】有关LED的实验

点亮一个LED灯 根据LED模块原理图,我们可以知道,通过控制P20、P21...P27这八个位置的高低电平,可以实现D1~D8八个LED灯的亮灭。VCC接的是高电平,如果P20接的是低电平,那么D1就可以亮。如果P20接的是高电平,…

CSS基础属性(学习笔记)

一、CSS介绍 CSS即层叠样式表/级联样式表,简称样式表 html:写网页结构内容 css:写网页样式 实现了内容与表现的分离,提高了代码的重用性和维护性 CSS注释不被浏览器解析,给开发人员一个标注 快捷键:ctrl/ 语…

YOLOv5独家改进:block改进 | RepViTBlock和C3进行结合实现二次创新 | CVPR2024清华RepViT

💡💡💡本文独家改进:CVPR2024 清华提出RepViT:轻量级新主干!从ViT角度重新审视移动CNN,RepViTBlock和C3进行结合实现二次创新 改进结构图如下: 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创…

FTP文件传输协议

FTP 文章目录 FTP1. ftp简介2. ftp架构3. ftp数据连接模式4. 用户认证5. vsftpd5.1 vsftpd安装5.2 配置匿名用户ftp5.2.1上传(下面使用的是FileZilla软件)5.2.2下载5.2.3创建5.2.4删除 5.3配置本地(系统)用户ftp5.3.1上传5.3.2下载…

Qt教程 — 3.4 深入了解Qt 控件:Input Widgets部件(3)

目录 1 Input Widgets简介 2 如何使用Input Widgets部件 2.1 Dial 组件-模拟车速表 2.2 QScrollBar组件-创建水平和垂直滚动条 2.3 QSlider组件-创建水平和垂直滑动条 2.4 QKeySequenceEdit组件-捕获键盘快捷键 Input Widgets部件部件较多,将分为三篇文章介绍…