【Java编程进阶】Java语言基础入门篇

article/2025/9/13 1:40:17

在这里插入图片描述

前言

你好,欢迎你阅读 Java 编程基础教程系列专栏。每个技术人都有个大厂梦,我觉得这很正常,并不是饭后的谈资,而是每个技术人的追求。像百度,阿里,腾讯这样的大厂技术氛围和技术规范度一定是优于一些创业型公司或者小公司的。能够在这样的公司锻炼几年,相信你的能力将会有很大的提升。

为了和大家共同学习进步,我肝了无数的大夜,掉了数不清的头发,打造了这个专栏,现在专栏已慢慢具有完整的雏形并在持续更新和完善。很多朋友问我:怎样学好编程?怎样快速掌握一门编程技术?强烈推荐此专栏,文章总结了我在大学时学习遇到的坑,以及解决这些困难的过程,高效率学习的经验分享等。博主正在持续不断地学习,更加明白大家学习阶段的状态和需求,专栏文章结合自身经验,语言风趣幽默。【本专栏主要更新Java基础,MySQL数据库,JavaWeb系列,SSM框架,SpringBoot,面经分享,编程干货等等】,零基础小白搬砖逆袭,把我当下,别辜负了最好的自己!!

学习编程并非一日之功,这是一个漫长的过程。基础知识无论在面试中还是在实际开发中都是尤为重要的。种一棵树最好的时间是十年前,其次是现在,让我们一起开始这漫长的旅程,在技术成长的过程中不断寻找自己。

键盘敲烂,月薪过万!一杯奶茶钱,学会投资自己,烟火向星辰,所愿皆成真。

从搬砖工到架构师,Java全栈学习路线总结:

在这里插入图片描述

初学者应该先对 Java 整体有所把握,在学习时一定要遵循先广度后深度的客观规律,否则将会犯钻牛角尖的错误,初学时你不必明白每一部分的底层实现逻辑,而是要先能写出代码。

在这里插入图片描述

学习路线:从搬砖工到架构师,Java全栈学习路线总结

整个 Java 编程技术栈体系十分庞大,建议初学者首先学习 Java 基础,例如语法基础,集合,IO 流,多线程,反射,注解等,再学习数据库,学会数据的持久化存储,这部分主要是 SQL 语句的学习,学会使用JDBC基础代码操作数据库等,接下来学习 JavaWeb ,主要学习 TomCat,Servlet,JSP等内容,学会使用 Java 技术解决 Web 互联网相关问题。接着学习主流的框架开发,例如 Spring ,SpringMVC,MyBatis等内容。

当然学习完这些是远远不够的,你还要学习计算机基础,数据结构与算法,JVM 等等知识。

在这里插入图片描述

哈喽大家好,我是大橙子!下面开始今天的正题,Java语言基础入门。


第一个Java程序 Helloworld

学习 Java 语言的第一步,从经典的 helloworld 程序开始。

编写一个 Java 程序,在DOS窗口打印 “Helloworld!”。

//filename:Helloworld.java
public class Helloworld{public static void main(String[] args){System.out.println("Helloworld!");}
}

在这里插入图片描述
当然要运行这个程序还要做一些前期的 Java 环境的准备,后文讲述。

编译解释运行:

在这里插入图片描述

使用 javac 命令编译后,在当前文件夹自动生成一个 .class 的字节码文件,运行时由 JVM 解释执行。


Java语言的现状

软件开发全球范围迅速发展,熟练掌握一门编程语言为初学者提供了一个很好的起点,以下是 2022 年编程语言排行榜,可以看到 Java 语言是我们学习编程很好的选择!

在这里插入图片描述


Java语言的诞生与发展史

Java 语言诞生于 20 世纪 90 年代,自诞生以来迅速发展!

Java 语言于 1995 年被定位于网络应用的程序设计语言正式推出,起初,Java 语言是 Sun 公司的一种用于开发智能化家电的语言,名为 Oak (橡树),并没有得到很大的发展。

1993 年,万维网迅速发展,Sun 公司利用 Oak 语言开发具有动态内容的 WWW 网页,Oak 重新得到很大的重视和发展,并将改造后的语言改名为 Java。Sun 公司于 2009 年被 Oracle 公司以 74 亿美元收购。

后来 Java 语言由于自身功能的强大,被业界广泛的接受,IBM,Apple 等大公司都购买了 Java 语言的许可证,同时,众多软件开发商开发了许多支持 Java 的产品,在这个以计算机网络迅速发展的时代,Java 语言得到了迅猛的发展。

随着 Java Servlet 的推出,Java 语言推动了电子商务的发展,之后 Java Server Page 的推出更让 Java 成为 web 应用程序开发的首选。使 Java 占据了越来越重要的位置。


Java语言一些主要的特点

Java 语言是一种完全面向对象的跨平台语言。有很多突出的优点,例如简单易学,面向对象,分布式,安全可靠,解释型语言,跨平台运行,可移植高性能多线程,可实现网络编程等。

1.简单易学

于 C++ 相比,Java语言去掉了指针,联合体,结构体,使得自身的性能更加稳定。同时程序员不能通过 Java 程序直接访问内存地址,保证了很大的安全性。而且其缺少的数据结构的功能完全可以由面向对象的类来实现,简单易学。

2.完全面向对象

Java 语言中有一句万物皆对象的说法,与 C++ 相比,Java 是一门完全面向对象的编程语言,即 Java 是以对象为中心,以消息为驱动的编程语言。面向对象有三大主要特征,即继封装,继承,多态。

封装:利用抽象数据类型把数据和数据之间的操作封装在一起,只有通过访问权限才可以访问相关的数据。

继承:继承是通过已有的类创建新的类的过程,子类可以继承父类所有的属性和方法。Java 语言只允许单继承,减少了由多继承带来的歧义,更加的安全。同时 Java 语言可以通过接口来实现多重继承。

多态:多态是指在一个程序中存在多个同名方法,例如:可以通过重载在一个类中实现多个同名方法,可以通过子类覆盖 父类中的方法实现。即一个接口,多个对外实现的方法。

3.跨平台运行

Java 程序编译后自动生成字节码文件,由 Java 虚拟机 JVM 解释运行,使用 Java 编写的应用程序不用修改,就可以在不同的软硬件平台运行。Java 虚拟机在不同的平台有不同的虚拟机,虚拟机不可以跨平台。

4.安全可靠

第一点,Java 放弃使用指针,防止对内存的非法访问,第二,显式的方法说明,编译器可以发现方法的错误调用,第三,垃圾回收机制,解决了内存的不合理释放问题,第四,解释器实施检查,防止数组字符串等访问越界,第五,异常处理,简化错误处理任务,使得 Java 语言可靠。

同样,Java 语言是很安全的语言,由于 Java 用于网络编程,所以对它的安全性有很高的要求,否则从网络下载程序就会很危险,甚至损害用户的计算机。Java 可以通过自身的自己防止病毒的产生和对本地系统的危害。

5.支持多线程,网络编程

线程是比进程小的并发执行单位。

一方面,Java 环境的多线程,若干个系统线程运行,另一方面,Java语言内置多线程机制,简化多线程应用程序的开发。

6.编译解释并存

Java 语言本质上还是解释型语言,有编译器编译为独立于平台的字节码文件,字节码文件被解释器解释为二进制文件,并在 Java 虚拟机上执行代码。同时解决了普通解释型语言执行效率低的问题,使得 Java 语言迅速发展。


Java技术与Java虚拟机

一. Java技术主要包括三个方面

Java SE:又称 J2SE,是 Java语言的标准版

Java ME:又称 J2ME,是移动商务最佳的典范,众多小型的电子装置无线通讯手机等都使用 Java ME 开发。

Java EE:又称 J2EE,是 Java 语言的企业版。是以企业为环境而开发应用程序的解决方案。

二. Java虚拟机

大部分的编程语言程序都是经过编译或者解释之后在计算机运行的,而 Java 语言要先经过编译器编译,转换成与平台无关的机器码(字节码文件),然后再通过解释器解释运行。

字节码文件是 Java 虚拟机的指令组,Java 编译成字节码文件后尺寸较小,便于网络传输。

在这里插入图片描述

字节码最大的好处就是编译一起,处处运行。使用 Java 编译器编译一次生成字节码文件,便可以在不同平台的 JVM 上运行。任何一种可以运行 Java 字节码的软件均可以看作 Java 的虚拟机,如浏览器与 Java 开发工具。字节码相当于 JVM 上面运行的机器码,底层上来说,JVM 就是以 Java 字节码文件为指令组的软 CPU,JVM 其实就是一个字节码解释器。


Java程序的种类和结构

Java 语言可以编写两种类型的程序:Application(应用程序)和Applet(小程序)。这两种程序开发原理相同但是运行环境不同。

应用程序:从命令行运行程序,可以在 Java 平台上独立运行。主类必须包含一个含有 main() 方法的主方法,这个方法不仅是应用程序的标志,同时也是 Java 执行程序的入口。Java 应用程序是一个独立的程序,可以调用独立的解释器即可以运行。

小程序:小程序内嵌在 HTML(超文本标记语言)中,需要用浏览器来运行,在运行 Java 小程序时还要为它编写一个 HTML 文件,在浏览器中运行这个 HTML 文件,同时就激活了浏览器中的解释器。同样,也可以使用可以模拟浏览器环境并执行 Java 程序的软件来执行小程序,由于浏览器安全受限,所以一般使用模拟浏览器环境的软件。

两者存在很多不同之处:

第一,运行环境的不同:应用程序的外部输入是命令行,而小程序则是来自 Web 浏览器大量的信息输入,在浏览器的环境下,它需要知道何时启动,何时激活,关闭。

第二,执行环境的不同:最低要求不同,应用方面,小程序十分便利,适合发布在 Internet 上,而非网络系统和内存较小的系统更适合 Java 应用程序。

第三,小程序直接利用浏览器或者 AppletViewer 提供的图形用户界面,而应用程序要书写专用的代码来实现图形用户界面。

第四,小程序的主类必须是一个继承自系统类 JApplet 或 Applet 的子类,且该类必须是 public类,应用程序的主类必须是包含主方法的类,但是不一定是 public 类。

一个 Java 程序可以有多个源文件构成。下面介绍一个 Java 程序的具体结构:

package src;
import java.io.*;
public class A_1{public static void main(String[] args){char c=' ';System.out.println("请输入一个字符:");try{c=(char)System.in.read();}catch(IOException s){}System.out.println("您输入的字符是:"+c);}
}

在这里插入图片描述

在 Java 类体中有两部分,域(成员变量)主要是常量变量等和成员方法。成员方法类似于 C 语言里面的函数,可以有参数,但是要在成员方法前面加上访问权限修饰符。

语句是 Java 程序的基础单位,每个语句以英文状态下的分号结束,类和方法应放在 {} 之中。

Java 语言严格区分大小写,书写时不可以到小写混淆,另外,在书写 Java 程序是应该养成良好的习惯,例如代码的换行等。

一个程序只能有一个主类,主类是程序运行的入口。


总结

学完这篇博客,你应该学会这些内容:

  • 了解第一个 Java 程序,培养 Java 编程兴趣
  • Java 语言的发展史
  • Java 技术,Java 虚拟机

在这里插入图片描述


http://chatgpt.dhexx.cn/article/iUewNASM.shtml

相关文章

Java基础入门(一)----基本语言

目录 1. 标识符 2.关键字 3.注释 4.数据类型 5.运算符 5.1 常用运算符 5.1 运算符优先级 1. 标识符 在Java语言中,对于变量,常量,函数,语句块和命名的统称为Java标识符。Java标识符是由数字,字母,下…

ICCV 2019 | VIPL实验室5篇录取论文详解

上月,两年一度的国际计算机视觉大会ICCV 2019 公布了论文接收结果。今年投稿数量高达4303篇,与上一届 2143 篇相比,数量多出了将近一倍。最终全球仅1077篇论文被录取,录取率25.02%。中国科学院计算技术研究所视觉信息处理与学习研…

活体检测——SSDG

论文:《Single-Side Domain Generalization for Face Anti-Spoofing》 中国科学院计算技术研究所视觉信息处理与学习研究组(VIPL实验室)发布的单边域适应框架SSDG,其论文被CVPR2020 接收。Github链接:https://github.…

【ECCV 2016】Grid Loss及其在人脸检测中的应用

本文来源微信公众号:深度学习大讲堂,已授权发布。 作者:时学鹏,中科院计算所VIPL组15级硕士生。导师为山世光研究员。研究方向为基于深度学习的目标检测,特别是人脸检测。研发了VIPL课题组第五代人脸检测SDK。 原文&am…

Linux lvm(pv、vg、lv)操作命令收集

摘要:在Linux中,lvm逻辑卷应用非常广泛,vg卷组可以动态的调整空间大小,逻辑卷的扩容,可以轻松解决系统挂载点空间不足的问题。vg卷组创建的前提是设备分区标签必须为lvm。 一、物理卷操作命令 1、创建物理卷&#xff…

中科院计算所VIPL实验室2篇AAAI 2020论文导读

点击我爱计算机视觉标星,更快获取CVML新技术 经过数个月的审稿,近日,AAAI 2020 公布最终论文接收结果。大会共收到有效论文投稿超过8800 篇,再创历史新高,其中 7737 篇论文进入评审环节,最终有1591 篇被录用…

Linux LVM学习 查看pg,vg,LV的命令

Linux LVM学习 先了解一下PV,VG,LV的命令一张图先看关系物理存储介质(The physical media)这里指系统的存储设备:硬盘,如:/dev/hda、/dev/sda等等,是存储系统最低层的存储单元。 物理卷(PV physical volume)物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备…

2020年chx的计算机保研之路系列(3)——中科院计算所(获得offer)

写在前面 写这篇博客的时间是2020.7.26。有北航cs保底了,再参加其他夏令营的时候明显就自信了许多,所以计算所面试发挥的也不错。但是,我还真是没想到,在夏令营阶段(真是各路神仙打架),就一举拿…

Self-supervised Equivariant Attention Mechanism for Weakly Supervised Semantic Segmentation论文解读

( CVPR 2020|中科院VIPL实验室 ) 1.要解决的问题: 基于类别标签的弱监督语义分割是一个具有挑战性的问题,类别响应图(class activation map,简称CAM)始终是这一领域的基础方法。但是…

2022年计算机保研记录(计算所、浙大、华科、东南、北航)

在 2022 年 9 月 26 日,我的保研之旅终于结束啦,成功上岸浙江大学软件学院,来记录一下我的保研经历~ 文章目录 一、个人情况二、夏令营浙江大学北京邮电大学中国科学院大学计算所计算机网络信息中心 东南大学北京航空航天大学中南…

CVPR2019| 中科院VIPL实验室11篇CVPR解读:弱监督学习、视频分割、目标检测

点上方蓝字计算机视觉联盟获取更多干货 在右上方 设为星标 ★,与你不见不散 11篇论文的信息概要介绍如下: 1. VRSTC: Occlusion-Free Video Person Re-Identification (Ruibing Hou, Bingpeng Ma, Hong Chang, Xinqian Gu, Shiguang Shan, Xilin Chen) …

VIPL Lab 9篇ACM MM 2019和IEEE TIP 论文精解

点击我爱计算机视觉标星,更快获取CVML新技术 春华秋实,硕果累累。近期,中国科学院计算技术研究所视觉信息处理与学习研究组(VIPL实验室)再创佳绩,有6篇论文被ACM MM 2019接收,还有3篇文章被IEEE…

CVPR2020 | 中科院VIPL实验室录取论文详解

编者按:近日,计算机视觉顶会 CVPR 2020 接收论文结果揭晓,从 6656 篇有效投稿中录取了 1470 篇论文,录取率约为 22%。中科院VIPL实验室共七篇论文录取,内容涉及弱监督语义分割、活体检测、手势识别、视觉问答、行人搜索…

深度优先搜索 广度优先搜索理解

深度优先搜索广度优先搜索 1. 什么是 “搜索” 算法 我们知道,算法都是作用于某种具体的数据结构上的,而深度优先搜索算法和广度优先搜索算法就是作用于图这种数据结构的。 图上的搜索算法,就是从图中的一个顶点出发,到另一个顶…

深度优先搜索广度优先搜索

1 概述 算法是作用于具体的数据结构之上的,深度优先搜索算法和广度优先搜索算法都是基于图这种数据结构的。主要原因是因为图的这种数据结构表达能力很强,大部分涉及搜索的场景都可以抽象成图。 图上的搜索算法,最直接的理解就是&#xff0c…

邻接矩阵的深度优先搜索技术

概述 深度优先搜索(Depth First Search,DFS),是最常见的图搜索方法之一。深度优先搜索沿着一条路径一直走下去,无法行进时,回退回退到刚刚访问的结点,似不撞南墙不回头,不到黄河不死…

图-深度优先遍历

概述 深度优先遍历,从初始访问结点出发,初始访问结点可能有多个邻接结点,深度优先遍历的策略就是首先访问第一个邻接结点,然后再以这个被访问的邻接结点作为初始结点,访问它的第-一个邻接结点,可 以这样理解…

深度优先搜索python

深度优先搜索 概念 深度优先搜索和广度优先搜索一样,都是对图进行搜索的算法,目的也都是从起点开始搜索直到到达指定顶点(终点)。深度优先搜索会沿着一条路径不断往下搜索直到不能再继续为止,然后再折返,…

DFS——深度优先搜索

什么是DFS DFS,中文名深度优先搜索,是一种图的搜索方式,本质上是一种递归。 dfs相当自由,学dfs可能最高境界就和打太极似的,无招胜有招 DFS的经典应用: 1.全排列 虽然感觉没有贴题目的必要 这应该是大多数d…

算法详解之深度优先搜索算法

14天阅读挑战赛 文章目录 1、深度优先搜索(Depth-First Search,DFS)介绍2、深度优先搜索算法思想3、深度优先搜索算法步骤:4、深度优先搜索算法的应用 1、深度优先搜索(Depth-First Search,DFS&#xff09…