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

news2024/9/23 19:23:16

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

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

文章目录

        • 1. Java 简介
          • 1.1 特性介绍
            • 1.简单性
            • 2. 面向对象
            • 3. 分布式
            • 4. 健壮性
            • 5. 安全性
            • 6. 体系结构中立
            • 7. 可移植性
            • 8. 解释型
            • 9. 高性能
            • 10. 多线程
            • 11. 动态性
        • 2. 关于 JDK
          • 1.环境变量
        • 3. 演示 HelloWorld

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 命令运行字节码文件时,该字节码文件的后缀不需要录入。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【javascript】关于path-package

背景 一个老的vue项目,预览pdf文件的时候,电子签章不显示 解决方案 由于是老项目,升级版本存在风险,然后又找到一些解决方案,都是修改源码,修改源码就引出了今天的主题 path-package,我们需要…

maven项目、springboot项目复制文件进来后没反应、不编译解决方法

问题如下 把文件复制进springboot项目后,没反应,不编译。 解决 在maven工具框中选择compile工具,运行即可。

cicd实验

系列文章目录 文章目录 系列文章目录一、1.2. 二、安装并使用1.安装gitlab2.//Jenkins安装3. 总结 一、 1. 2. 二、安装并使用 需要三台服务器一台安装gitlab 192.168.169.10 第二台负责 安装jenkins 192.168.169.20 第三台是负责业务 192.168.169.30 1.安装gitlab yum in…

JVM总结笔记

JVM JVM是什么?JVM 的主要组成部分JVM工作流程JVM内存模型直接内存与堆内存的区别:堆栈的区别Java会存在内存泄漏吗?简述Java垃圾回收机制垃圾收集算法轻GC(Minor GC)和重GC(Full GC)新生代gc流程JVM优化与JVM调优 JVM是什么? JVM是Java Virtual Mach…

【自用记录】常见的第三方接口加密签名方式(ASCll码字典序、URL键值对、 SHA-256加密、MD5加密)

案例1: 案例2: 以上第三方接口都用类似的加密签名方式,两者有类似的部分: 方案1的: $kdata = array(parkId=>$parkId,ts => $ts,serviceCode=>getParkingPaymentList,reqId => $reqId,plateNo => $car_code,//车牌 可为空pageIndex => 1,//第几页page…

15. Spring AOP 的实现原理 代理模式

目录 1. 代理模式 2. 静态代理 3. 动态代理 3.1 JDK 动态代理 3.2 CGLIB 动态代理 4. JDK 动态代理和 CGLIB 动态代理对比 5. Spring代理选择 6. Spring AOP 实现原理 6.1 织入 7. JDK 动态代理实现 8. CGLIB 动态代理实现 9. 总结 1. 代理模式 代理模式&#xf…

<Git/Gerrit>版本控制Git以及代码评审Gerrit常见的开发操作

下载安装,环境变量配置直接百度; 1.代码拉取: 操作步骤:在正确配置完git的条件下:在本地文件夹下:右键–Git Bash -Here: 出现如下弹窗: 在黑窗口输入:代码拉取路径(一般都是把命令和路径在外面写好,直接粘贴(在窗口右键,Paste,回车)) 代码…

linux系统磁盘性能监视工具iostat

目录 一、iostat介绍 二、命令格式 三、命令参数 四、参考命令:iostat -c -x -k -d 1 (一)输出CPU 属性值 (二)CPU参数分析 (三)磁盘每一列的含义 (四)磁盘参数分…

AI生成式视频技术来临:Runway Gen-2文本生成视频

Runway Gen-2的官方网站提供了一种文本生成视频的工具。以下是对该工具的介绍: 文本生成视频:Runway Gen-2是一个创新的在线工具,可以将文本转化为视频。用户只需输入文本描述或句子,Runway Gen-2就能自动生成相应的视频内容。这…

uni-ajax网络请求库使用

uni-ajax网络请求库使用 uni-ajax是什么 uni-ajax是基于 Promise 的轻量级 uni-app 网络请求库,具有开箱即用、轻量高效、灵活开发 特点。 下面是安装和使用教程 安装该请求库到项目中 npm install uni-ajax编辑工具类request.js // ajax.js// 引入 uni-ajax 模块 import ajax…

【最短路算法】SPFA

引入 在计算机科学的世界里,算法就像是星空中的繁星,各自闪烁着智慧的光芒。它们沉默而坚定,像是一群不语的哲人,默默地解答着世界的问题。 算法的步骤,如同优美的诗行,让复杂的问题在流转的字符中得以释…

PHP8的常量-PHP8知识详解

常量和变量是构成PHP程序的基础,在PHP8中常量的这一节中,主要讲到了定义常量和预定义常量两大知识点。 一、定义常量 定义常量也叫声明常量。在PHP8中,常量就是一个标识符(名字),一旦定义(声明&…

ansible-playbook编写 lnmp 剧本

ansible-playbook编写 lnmp 剧本 vim /opt/lnmp/lnmp.yaml执行剧本 ansible-playbook lnmp.yaml

WebDAV之π-Disk派盘 + DEVONthink

DEVONthink是由一家来自德国的老牌软件开发商发布的「知识管理」软件,运行于 Mac/iOS 平台。官方自己定位为全方位(中文环境下略有遗憾)帮助你实现知识管理,可以称之为“模块级”应用了。 DEVONthink还支持各种云服务同步,文件管理您的终极文件管理应用、文件、图片与连接远…

Android Ble蓝牙App(一)扫描

Ble蓝牙App(一)扫描 前言正文一、基本配置二、扫描准备三、扫描页面① 增加UI布局② 点击监听③ 扫描处理④ 广播处理 四、权限处理五、扫描结果① 列表适配器② 扫描结果处理③ 接收结果 六、源码 前言 关于低功耗的蓝牙介绍我已经做过很多了&#xff0…

基于SHARC+®单核的ADSP-21567KBCZ6、ADSP-21566BBCZ4、ADSP-21566KBCZ4高性能DSP处理器产品

ADSP-2156x 处理器的速度高达 1 GHz,属于 SHARC 系列产品。ADSP-2156x 处理器基于 SHARC 单核。ADSP-2156x SHARC 处理器是 SIMD SHARC 系列数字信号处理器 (DSP) 中的一款产品,采用 ADI 的超级哈佛架构。这些 32 位/40 位/64 位浮点处理器已针对高性能音…

Practice3|922. 按奇偶排序数组 II、143. 重排链表

922. 按奇偶排序数组 II 1.题目: 给定一个非负整数数组 nums, nums 中一半整数是 奇数 ,一半整数是 偶数 。 对数组进行排序,以便当 nums[i] 为奇数时,i 也是 奇数 ;当 nums[i] 为偶数时, i…

将临时表的所有数据添加到另一张表的某个字段

临时表 目标表 SmsCatagory smsCatagory new SmsCatagory(); smsCatagory.setGasStationId(); smsCatagory.setType(); ...... sendTaskService.batchInsertByTemp(smsCatagory);xml&#xff1a; <insert id"batchInsertByTemp">INSERT INTO cs_sms_cata…

[每日习题]进制转换 参数解析——牛客习题

hello,大家好&#xff0c;这里是bang___bang_&#xff0c;本篇记录2道牛客习题&#xff0c;进制转换&#xff08;简单&#xff09;&#xff0c;参数解析&#xff08;中等&#xff09;&#xff0c;如有需要&#xff0c;希望能有所帮助&#xff01; 目录 1️⃣进制转换 2️⃣参…

safe敏捷项目管理,safe框架简介

一、SAFe简介 SAFe是ScaledAgile Framework的简称&#xff0c;由DeanLeffingwell创建&#xff0c;SAFe&#xff08;Scaled Agile Framework&#xff09;是全球运用最广泛的大规模敏捷框架。 SAFe融合了精益、敏捷和DevOps&#xff0c;它是一个知识库&#xff0c;囊括了大量已…