当前位置: 首页 > news >正文

关于我对刚开始学Java的小白想分享的内容:

编程是很有魅力的,让很多人为之痴迷

如果你是初学者,俗称小白,不妨看看下述内容:

文章目录

1. Java 简介

Java 是一门编程语言,发展至今已经成为一门真正意义上的语言标准。

Java是一个完整的平台,有一个庞大的库,其中包含了很多可重用的代码,以及一个提供诸如安全性、跨操作系统的可移植性以及自动垃圾收集等服务的执行环境。

现如今很多技术公司为了方便用户进行程序编写,往往都使用Java作为应用层封装的标准,通过Java来调用一些底层的操作。


1.1 特性介绍
1.简单性

这里所谓的简单,其实也是一种简洁,不管是从何而简,都简于语法之上,倘若小白初次听到语法二字,可以先简单理解成所学习编程语言的编写方法格式。
至于从何而简单,也要较比于C++而言,Java是C++语法的一个“纯净”版本。它剔除了C++中许多很少使用、难以理解、容易混淆的特性。如:头文件,指针运算(甚至指针语法)、结构、联合、操作符重载、虚基类等。

2. 面向对象

面向对象设计是一种程序设计技术。它将重点放在数据(即对象)和对象的接口上。
如果用木匠来打比方:一个"面向对象"的木匠始终将自己的焦点聚集在制作的椅子上,其次才是使用的工具;而一个"非面向对象"的木匠首先需要搞清楚使用的工具,然后才能将焦点聚集在制作椅子上。
java与C++的面向对象能力本质上是相同的,不同点在于多继承,Java当中用接口的概念替代了多继承。

3. 分布式

Java 具有丰富的例程库,用于处理像 HTTP 和 FTP 之类的TCP/IP 协议。
Java应用程序能够通过 URL 打开和访问网络上的对象,其便捷程度就好像访问本地文件一样。

4. 健壮性

Java 编译器能够检测许多在其他语言中仅在运行时才能够检测出来的问题。
Java 的设计目标之一在于使得 Java 编写的程序具有多方面的可靠性。Java 非常强调进行早期的问题检测、后期动态的(运行时)检测,以及消除容易出错的情况。
Java 与 C/C++ 最大的不同在于 Java 采用的指针模型可以消除重写内存和损坏数据的情况。

5. 安全性

Java 要适用于网络 / 分布式环境。为了实现这个目标,安全性颇受重视。使用 Java 可以构建防病毒、防篡改的系统。
从一开始,Java 就设计成能够防范各种攻击,其中包括:
运行时堆栈溢出,这是蠕虫和病毒常用的攻击手段。
破坏自己的进程空间之外的内存。
未经授权读写文件。

6. 体系结构中立

体系结构中立源于,经Java 编译器伪编译之后的字节码文件,该文件独立于计算机系统之外。只要有
Java运行时系统,这些编译后的字节码文件就可以在许多处理器上执行。而且精心设计好的代码不仅可以容易地在任何机器上解释执行,还可以动态地转换成本地机器代码。

计算机高级语言分为两种:编译型和解释型。
Java 是两种类型的集合。

在这里插入图片描述

7. 可移植性

通过上图可以发现:所有的 Java 程序文件的后缀都应该是 *.java ,而任何一个 *.java程序首先必须经过编译,编译之后会形成一个 *.class 的文件(字节码文件),而后在计算机上执行,但是解释程序的计算机并不是一台真正意义上的计算机,而是一台由软件和硬件模拟出来的计算机— Java虚拟机 Java Virtual Machine,JVM.

8. 解释型

Java 解释器可以在任何移植了解释器的机器上直接执行Java字节码.

Java 是一种解释型语言,相对于 C 和 C++ 语言来说,用Java写出来的程序效率低,执行速度慢。但它正式通过在不同平台运行Java解释器,对Java代码进行解释,来实现"一次编写,到处运行"的宏伟目标。

9. 高性能 **字节码可(在运行时)动态地转换成对应运行这个应用的特点 CPU 的机器码.**

即使编译器非常出色,可以与传统编译器相媲美,而且在某些情况下甚至超越了传统编译器,原因是它们有更多的可用信息。例如:即使编译器可以监控哪些代码频繁执行,并优化这些代码以提高速度。更为复杂的优化是消除函数调用(即"内联")。

10. 多线程 **多线程可以带来更快的交互响应和实时行为.**

线程,是一种轻量级进程。
如今,我们非常关注并发性,因为摩尔定律已经走到尽头。我们不在追求更快的处理器,而是着眼于获得更多的处理器,而且要让它们一直保持工作。

11. 动态性

当需要为正在运行的程序增加代码时,动态性将是一个非常重要的特性。一个很好的例子是:从Internet 下载代码,然后在浏览器上运行。如果使用 C 或 C++,这确实难度很大,不过 Java 设计者很清楚动态语言可以很容易地实现运行程序的演进。最终,他们将这一特性引入这个主流程序中。

上述内容是针对 Java11个特性的简单介绍.

文章内容,只做简单介绍,如想了解的更深入,
建议阅读:
1.《第一行代码》
2.《Java核心卷1》

我的很多内容,都是整合自书中,我讨厌用耳朵学习,会让我停滞思考。
我喜欢用眼睛,感觉会思考的更快,如果想了解的更深入,还是要读书。

《第一行代码》是国人的作品,讲述风格就像老师消化完讲给你听的一样,所有需要考虑的问题,书里都解释的详细。

《Java 核心卷1》完全工具书化,内容讲的比较官方,只是比较,建议两者一起去读,这样可以比对同一个问题的两种答案。

所以我不打算将长篇大幅的发展史在搬运过来.


2. 关于 JDK

如果你想玩游戏,就必须先进行客户端的安装。当然,除非你玩网页游戏。但是也需要先安装插件。

同样,如果你想玩 Java,也要先安装客户端,那就是 JDK.

对于 JDK 的下载和安装可以进入官网:甲骨文
推荐下载 JDK 8,这是简化之后的版本号,也就是 JDK 1.8

安装到自己便于找到的位置之后,我想分享给你 JDK 和 JRE 的区别:

JDK 是开发工具包,其内部包含 JRE
JRE 是运行环境,它只包含虚拟机,也就是说它的作用只是帮助我们运行Java代码。

如果你觉得自己安装成功,可以打开终端,
录入代码进行检测:

javac -version

安装成功的显示结果为:成功返回版本号
在这里插入图片描述

如果返回信息显示报错,你就需要检测你的安装了。
而且一定要切记配置环境变量:

1.环境变量 对于Java开发而言,主要是会使用 JDK 的:

javac.exe 和 java.exe 两个操作命令,由于该两个操作命令不属于 windows 系统,所以需要配置环境变量。

Path:由于该两个命令不属于windows系统,配置好 Path变量后,可以运行 javac 命令进行测试。

CLASSPATH:当指定文件路径位置打开终端时,终端通过正确的指令便可对其进行编译和运行操作,如果并非此环境情形,你必须配置该环境变量,以便于在全局windows系统环境下运行指令。

3. 演示 HelloWorld

每一个程序员正式设计程序时,都是从 HelloWorld 开始的。

我们需要先准备一个 后缀为 .java 的 java文件。

然后编写代码内容为:

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

需要注意的是 后缀.java 前的文件名称要与 class 后的名称保持一致。

打开终端,通过 javac 命令进行编译,将该 java 文件编译成虚拟机可执行的字节码文件(中间码文件):
在这里插入图片描述
没有报错,则表示编译通过。

然后在通过 java 命令运行编译后的字节码文件:
在这里插入图片描述
注意!:使用 java 命令运行字节码文件时,该字节码文件的后缀不需要录入。

咨上所述内容,简洁清晰,是两本书的序篇精细整合,去除了无关紧要部分,如果想了解的更加深入,建议还是读一下这两本。
要再见了!朋友,下一文见~

相关文章:

关于我对刚开始学Java的小白想分享的内容:

编程是很有魅力的,让很多人为之痴迷 如果你是初学者,俗称小白,不妨看看下述内容: 文章目录 1. Java 简介 Java 是一门编程语言,发展至今已经成为一门真正意义上的语言标准。 Java是一个完整的平台,有一个…...

Redis学习路线(5)—— Redis生成唯一ID

一、全局唯一ID (一)在用户抢购时,就会生成订单并保存到数据库中,而订单表如果使用自增ID就会存在以下几种情况: 自增ID规律性太强受单表数据量的限制 (二)全局ID生成器,是一种在…...

django后台系统Tyadmin

无意之间发现个django的后台管理框架,仔细与xadmin对比了一下,无论是功能上还是便携性上都与xadmin特别相似,但个人感觉Tyadmin略胜一筹,因为外观上要比xadmin要美观,而且相比起来速度也快,部署甚至也和简单…...

设计模式适合用于解决特定的软件设计问题呢

当我们在开发软件时,经常会遇到各种各样的问题和挑战,例如如何处理对象之间的关系、如何实现复杂的业务逻辑、如何处理并发访问等。这些问题都是软件设计中经常遇到的问题,而设计模式就是为了解决这些问题而诞生的。 以下是一些常见的软件设…...

测试|测试分类

测试|测试分类 文章目录 测试|测试分类1.按照测试对象分类(部分掌握)2.是否查看代码:黑盒、白盒灰盒测试3.按开发阶段分:单元、集成、系统及验收测试4.按实施组织分:α、β、第三方测试5.按是否运行代码:静…...

矩阵中的路径(JS)

矩阵中的路径 题目 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。 单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是…...

Linux时间体系与LinuxPTP

Linux时间体系 Linux 需要提供“知道当前时间、计算时间长度、定时提醒”这三种功能。 其中知道当前时间和计算时间长度在某种程度上可以互相转换。即以UNIX Epoch计时开始可以知道当前时间。 一般硬件可以提供下列的硬件时钟: RTC 【真实时钟】 对于PC而言&…...

最优除法(力扣)数学 JAVA

给定一正整数数组 nums,nums 中的相邻整数将进行浮点除法。例如, [2,3,4] -> 2 / 3 / 4 。 例如,nums [2,3,4],我们将求表达式的值 “2/3/4”。 但是,你可以在任意位置添加任意数目的括号,来改变算数的…...

Git代码管理

目录: git环境配置 git工作流程git常用命令gitlab实战gitlog分析与检索分支管理策略git合并与冲突 1.git环境配置 Git 简介: Git 是目前世界上最先进的分布式版本控制系统。Git 优点: 适合分布式开发,强调个体…...

使用vscode进行远程开发服务器配置

1.下载vscode 2.给vscode 安装python 和 remote ssh插件 remote—SSH扩展允许您使用任何具有SSH服务器的远程机器作为您的开发环境。 3.安装remote-SSH插件之后,vscode左侧出现电脑图标,即为远程服务,按图依次点击,进行服务器配置…...

北斗gps卫星授时服务器(NTP)应用于防火墙场景

北斗gps卫星授时服务器(NTP)应用于防火墙场景 北斗gps卫星授时服务器(NTP)应用于防火墙场景 作为网络建设中不可或缺的两方面,在保证网络安全稳定以及时间同步精确性方面,防火墙和NTP服务器都极为重要。而防…...

Quartz中Misfire机制源码级解析

文章目录 前文案例展示Misfire机制1. 启动过程补偿2. 定时任务补偿3. 查询待触发列表时间区间补偿 前文 Misfire是啥意义的?使用翻译软件结果是"失火"。一个定时软件,还来失火?其实在Java里面,fire的含义更应该是触发&…...

每日一题——重建二叉树

重建二叉树 题目描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示。 提示: 1.vin.length pre.length 2.pre 和…...

Python - json与字典dict

Python中的JSON和字典都是数据序列化的格式,它们都可以将数据转换为字符串以便于存储或传输。虽然它们有一些相似之处,但也有很多不同之处。 字典 字典是Python中的一种数据类型,它是一个键值对的集合。每个键对应一个值,可以通…...

性能测试必备监控技能linux篇

前言 如果性能测试的目标服务器是linux系统,在如何使用linux自带的命令来实现性能测试过程的监控分析呢? 对于日常性能测试来讲,在linux下或是类Unix系统,我们必须掌握以下常用的指标查看命令。 ps pstree top free vmstat …...

【如何训练一个中英翻译模型】LSTM机器翻译模型部署之ncnn(python)(五)

系列文章 【如何训练一个中英翻译模型】LSTM机器翻译seq2seq字符编码(一) 【如何训练一个中英翻译模型】LSTM机器翻译模型训练与保存(二) 【如何训练一个中英翻译模型】LSTM机器翻译模型部署(三) 【如何训练…...

C++ 面向对象三大特征

文章目录 一、封装二、继承三、多态 一、封装 目的:隐藏实现细节;模块化 特性: 1) 访问权限: public 所有 protected 子类 private 自己(友元类也可以访问) 2)属性 3)方…...

【Github】自动监测 SSL 证书过期的轻量级监控方案 - Domain Admin

在现代的企业网络中,网站安全和可靠性是至关重要的。一个不注意的SSL证书过期可能导致网站出现问题,给公司业务带来严重的影响。针对这个问题,手动检测每个域名和机器的证书状态需要花费大量的时间和精力。为了解决这个问题,我想向…...

Echarts常见图表展示

一、折线图 1.1 堆叠折线图 const option {title: {text: 折线图,},tooltip: {trigger: axis},legend: {data: [张三, 李四, 王五],bottom: 10,},grid: {left: 3%,right: 4%,bottom: 10%,containLabel: true},xAxis: {type: category,boundaryGap: false,data: [Mon, Tue, We…...

PySpark机器学习实战案例

目录 PySpark机器学习库 分布式机器学习原理 PySpark架构设计 PySpark项目实战...

微软操作系统中,windows server 系列和windows 的区别

Windows Server和Windows Desktop(即我们常说的Windows系统)是Microsoft公司的两种操作系统产品,它们都基于Windows NT内核。两者在设计目标、功能和价格等方面存在显著的区别。 设计目标与功能 Windows Desktop系统主要针对个人用户和企业的…...

本地部署 Stable Diffusion XL 1.0 Gradio Demo WebUI

StableDiffusion XL 1.0 Gradio Demo WebUI 0. 先展示几张 StableDiffusion XL 生成的图片1. 什么是 Stable Diffusion XL Gradio Demo WebUI2. Github 地址3. 安装 Miniconda34. 创建虚拟环境5. 安装 Stable Diffusion XL Gradio Demo WebUI6. 启动 Stable Diffusion XL Gradi…...

模型法在初中物理中的实例与应用

摘要:模型法是初中物理解题的重要方法,它的优点有方便快捷,易于理解等。文章通过列举模型法在初中物理解题时应用的例子,与模型法在学习与生活中的实际应用,说明了模型法可用性高,易于理解,能让…...

el-table 设置行背景颜色 鼠标移入高亮问题处理

一、 设置行背景颜色 1. 需求描述 后端返回表格数据,有特定行数需要用颜色标识。类似于以下需求: 2. 解决方式 方式区别:row-class-name“tableRowClassName”已返回类名的形式设置样式,代码整洁,但是会鼠标高亮&#xff0c…...

嵌入式面试常见题目收藏(超总结)

​ 这篇文章来自很多博客主和其他网站的作者,如有侵权,联系必删 文章出处标注: https://blog.csdn.net/qq_44330858/article/details/128947083 ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** ***如需PDF或者原稿可私信 *** 1.…...

error in file(out, “wt“): cannot open the connection

这个错误在提示我们: 文件无法打开链接,可能是以下原因之一: 文件不存在或者路径错误;文件正在被其他程序占用;没有足够的权限来访问该文件;硬盘内存不足; 可以尝试的方法: 可以检…...

Redis (一)消息订阅和发送测试

〇、redis 配置 1、概况 本文基于 Ubuntu20.04 云服务器配置Redis,且在本地进行 Redis 测试。 2、目录概况 一、配置文件 位于 /config/app.yml 中,目的用于 Redis 初始化: redis:addr: "39.104.**.28:6379"password: "p…...

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测 目录 区间预测 | MATLAB实现QRGRU门控循环单元分位数回归时间序列区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRGRU门控循环单元分位数回归分位数回归多输入单输出区间…...

Debian 12.1 “书虫 “发布,包含 89 个错误修复和 26 个安全更新

导读Debian 项目今天宣布,作为最新 Debian GNU/Linux 12 “书虫 “操作系统系列的首个 ISO 更新,Debian 12.1 正式发布并全面上市。 Debian 12.1 是在 Debian GNU/Linux 12 “书虫 “发布六周后推出的,目的是为那些希望在新硬件上部署操作系统…...

hadoop部署配置

端口名称 Hadoop2.x Hadoop3.x NameNode内部通信端口 8020 / 9000 8020 / 9000/9820 NameNode HTTP UI 50070 9870 MapReduce查看执行任务端口 8088 8088 历史服务器通信端口 19888 19888 端口名称Hadoop2.xHadoop3.xNameNode内部通信端口8020 / 90008020 / 9000/9820NameNode…...