关于我对刚开始学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项目实战...

国防科技大学计算机基础课程笔记02信息编码
1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制,因此这个了16进制的数据既可以翻译成为这个机器码,也可以翻译成为这个国标码,所以这个时候很容易会出现这个歧义的情况; 因此,我们的这个国…...

springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Admin.Net中的消息通信SignalR解释
定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...

dify打造数据可视化图表
一、概述 在日常工作和学习中,我们经常需要和数据打交道。无论是分析报告、项目展示,还是简单的数据洞察,一个清晰直观的图表,往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server,由蚂蚁集团 AntV 团队…...
GitHub 趋势日报 (2025年06月06日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...

Unity VR/MR开发-VR开发与传统3D开发的差异
视频讲解链接:【XR马斯维】VR/MR开发与传统3D开发的差异【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...