java语言概述

c4d23d2fe13147c792c260f7d1279b49.png

一、抽丝剥茧话java

        目前社会毕业生中IT行业的就业薪资是最高的之一,另外就是金融(需要学历和资质),IT行业也是涨薪幅度最高的行业,并且对于学历要求不很高,最重要的就是能力。

        2024年,现在5G时代向6G过渡时期,网络流量已经比4G时期高出数十倍,在5G、人工智能、产业互联网方向都需要大量能与机器对话的中高端技术人员。

        在IT行业众多方向之中,软件开发由于其“起始薪资高、工作环境好、涨薪幅度高、行业竞争更公平”等优点,成为进入互联网IT圈最好的选择之一!

        但是,软件开发并非只能用java,那为什么要选择java呢?

        首先,java是学习javaEE后台,大数据、Android开发的基石。所以想走这些方向,最好掌握java。

        其次,java在游戏领域、桌面应用、嵌入式领域等也占有不容忽视的份额。

        最后,由数据显示,超过900万名开发人员使用java语言(全球专职开发人员的69%),号称“宇宙第一语言”,所以市场需求大,市场供给也大。在市场需求大的前提下,学习java是很不错的选择,但是在这种竞争压力下,能力一定要很强才能够在java的世界中存活下来。如果你真的在学习过程中爱上了java,希望你能在深耕java五年,你一定能够成为该领域出色的技术人员。

二、java职业晋升路线图

b0e3d17300514b8ea1c6573df4a22ed2.jpeg

三、计算机硬件与软件

1.硬件

  • CPU(Central Processing Unit,中央处理器):运算、控制
  • 内存:负责硬盘上的数据与CPU之间数据交换处理,断电后数据丢失。
  • 硬盘(Hard Disk Drive):机械硬盘(HDD)、固态硬盘(SSD)以及混合硬盘(SSHD)。断电数据不丢失。固态硬盘比机械硬盘贵得多,但是IO速度也快得多。
  • 输入输出设备:键盘、鼠标、打印机。
  • 通信设备:网卡等

2.软件

  • 系统软件:

eb68fc1d32ad4835836aee155f76bb08.png

  • 应用软件

7259a066935c4e69ab01553438534e72.png

3.人机交互方式

GUI(Graphical User Interface):图形化界面

CLI(Command Line Interface ):命令行方式

4.常用的DOS命令

操作(进入和回退)说明
盘符名称:盘符切换。E:回车,表示切换到E盘。
dir列出当前目录下的文件以及文件夹
cd 目录进入指定单级目录。
cd 目录1\目录2\...进入指定多级目录。cd atguigu\JavaSE
cd ..回退到上一级目录。
cd \ 或 cd /回退到盘符目录。
操作(创建和删除)说明
md 文件目录名创建指定的文件目录。
rd 文件目录名删除指定的文件目录(如文件目录内有数据,删除失败)        
type nul > 文件名.后缀创建指定的文件。
del 文件名.后缀删除指定的文件。
操作(其他常用)说明
cls清屏。
exit退出命令提示符窗口。
← →移动光标
↑ ↓调阅历史操作命令
Delete和Backspace删除字符

四、计算机编程语言

1.什么是计算机编程语言

        语言是人与人沟通的一种方式,但是不同国家的人语言不通就需要有一个翻译官。在计算机世界中,机器语言都是0和1组成,直接的人类语言机器不懂,所以就需要使用计算机编程语言作为翻译官。

        计算机编程语言目前有很多,主流语言有C 、C++、Java、Go、JavaScript、Python,Scala等。

2.计算机语言的简史

  • 机器语言:全部都是0和1数字组成,对人类很不友好。
  • 汇编语言:使用英文缩写的助记符来表示基本的操作,这些助记符构成了汇编语言的基础。比如:LOAD、MOVE等,使人更容易使用。因此,汇编语言也称为符号语言。
  • 高级语言:是一种接近于人们使用习惯的程序设计语言。它允许程序员使用接近日常英语的指令来编写程序,程序中的符号和算式也与日常用的数学式子差不多,接近于自然语言和数学语言,容易为人们掌握。 高级语言独立于机器,有一定的通用性;计算机不能直接识别和执行用高级语言编写的程序,需要使用编译器或者解释器,转换为机器语言才能被识别和执行。此外,高级语言按照程序设计方法的不同,又分为:面向过程的语言、面向对象的语言。

3.计算机语言排行榜

TIOBE Index - TIOBEhttps://www.tiobe.com/tiobe-index/

5281115776064196a0178730d45c2fbf.png

4.该学习哪一个编程语言?

8b5a9030b0fb47e981fcb76d8b7dde67.png

网传的编程语言鄙视链:

f1cb2b43838848758b3d390795c036f1.png

从大到小:性能越来越低,开发效率越来越高。

小结:

  • 程序设计语言有很多种,每种语言都是为了实现某个特定的目的而发明的。
  • 没有“最好”的语言,只有在特定场景下相对来说,最适合的语言而已。
  • 如果你掌握了一种编程语言,也会更容易上手其它的编程语言。关键是学习如何使用程序设计方法来解决问题。这也是本套课程的主旨。
  • Talk is cheap,Show me the code

五、JAVA语言概述

推荐你看文章:五分钟带你了解java的前生今世https://blog.csdn.net/weixin_44554794/article/details/140087840

六、JAVA技术体系平台

  • Java SE(Java Standard Edition)标准版
  •         支持面向`桌面级应用`(如Windows下的应用程序)的Java平台,即定位个人计算机的应用开发。包括用户界面接口AWT及Swing,网络功能与国际化、图像处理能力以及输入输出支持等。
  • 此版本以前称为J2SE。
  • Java EE(Java Enterprise Edition)企业版

        为开发企业环境下的应用程序提供的一套解决方案,即定位`在服务器端的Web应用开发`。JavaEE是JavaSE的扩展,增加了用于服务器开发的类库。如:Servlet能够延伸服务器的功能,通过请求-响应的模式来处理客户端的请求;JSP是一种可以将Java程序代码内嵌在网页内的技术。此版本以前称为J2EE

  • Java ME(Java Micro Edition)小型版

        支持Java程序运行在`移动终端(手机、机顶盒)上的平台`,即定位在消费性电子产品的应用开发JavaME是JavaSE的内伸,精简了JavaSE 的核心类库,同时也提供自己的扩展类。增加了适合微小装置的类库:javax.microedition.io等。此版本以前称为J2ME

总结:

javaSE除去其中一些少量桌面级开发必备的API之后,剩下的API是作为企业级开发所必须掌握的。所以我们一般将javaSE就称为java基础。javaEE是企业级开发,即java后端开发。javaME是一些小型终端设备的开发方向。

七、JAVA开发环境搭建(掌握)

推荐你看文章:JAVA开发环境的搭建(JDK下载与安装)-CSDN博客https://blog.csdn.net/weixin_44554794/article/details/140162463

八、开发初体验

        JDK安装完毕之后,就可以开发第一个Java程序了,习惯性的称为:HelloWorld。

A.开发步骤

Java程序开发三步骤:编写编译运行

  • 将 Java 代码编写到扩展名为 .java 的源文件中

  • 通过 javac.exe 命令对该 java 文件进行编译,生成一个或多个字节码文件

  • 通过 java.exe 命令对生成的 class 文件进行运行3bfd2a6174dd47afba76d186f755869a.png

B.编写

  1. D:\JavaSE\chapter01 目录下新建文本文件,完整的文件名修改为HelloWorld.java,其中文件名为HelloWorld,后缀名必须为.java。(后缀名决定文件类型,如果后缀名设置了隐藏,请打开)874a26fb855348d39b87e12d6dea7ea7.png
  2. 用记事本或editplus等文本编辑器打开(虽然记事本也可以,但是没有关键字颜色标识,不利于初学者学习)
  3. 在文件中输入如下代码,并且保存:
    class HelloChina {
          public static void main(String[] args) {
            System.out.println("HelloWorld!!");
          }
    }

注意1: 每个字母和符号必须与示例代码一模一样,包括大小写在内。

注意2:打开文件的后缀名        25ac062640534a2d82e50f7e32cca9cc.png第一个HelloWord 源程序就编写完成了,但是这个文件是程序员编写的,JVM是看不懂的,也就不能运行,因此我们必须将编写好的Java源文件 编译成JVM可以看懂的字节码文件 ,也就是.class文件。

C、编译

1.win+R组合键,输入CMD进入命令行窗口,是有个DOS命令进入java文件所在目录,此处是D:\JavaSE\chapter01目录,在命令行使用“javac 文件名.java” 命令进行编译。

9152d14dbe5c4102b82afd1b53b93f22.png

(编译成功后,你会发现一个.class的文件在目录结构下产生,文件名是你在.java文件中创建的类名。该.class文件就是字节码文件,是JVM可以运行的程序文件)

D、运行

在DOS命令行使用“java 文件名”运行。(注意:使用命令并不是“java 文件名.class”而是“java 文件名”)222c16765bb94d8b99439826c3b84647.png

九、其他的JAVA开发工具

A、初识开发工具

其实所有的开发工具的本质都是编辑器,但是各种编辑器软件的功能不同就影响着开发效率。所以根据便捷性对开发工具进行分类,有如下几种。

级别一:文本开发工具

69a27e4129ca492c815e1ef2d60c9ec3.png

级别二:集成开发环境(将代码编写、编译、执行、调试等多种功能总和到了一起的开发工具)

3a68734c6823409eb60d6f9415d3605e.png

 

B、如何选择

前期我们先使用文本开发工具,培养代码感,利于公司笔、面试。

后期我们使用IDE,提供更强大的功能支持,提高编程效率。

十、HelloWorld案例常见错误

1.JAVA语言严格区分大小写。所以可能会存在单词拼写错误。(class、String、System、main)

2.标点符号错误。注意标点符号均为英文状态下:{}、;

3.编译和运行时文件名写错、当前路径错误、后缀行隐藏问题。

4.语法问题:声明为public的类应与文件名一致,否则编译失败。

5.字符编码问题:当cmd命令行窗口的字符编码与.java源文件的字符编码不一致从而导致乱码,如何解决?10b9e1360d5945f1ac66d4dbc2f55611.png

(这个错误是:DOS界面使用的是GBK的编码方式,但是字节码文件使用的编码方式不是GBK。需要注意的是“GBK编码(国内称呼)就是ANSI编码(国外称呼)”)

 解决方案一:

  • 在Notepad++等编辑器中,修改源文件的字符编码:d3f97ab54bd54ebebd6a549dd55c42a3.png

  • 在EditPlus中可以将Java源文件另存为ANSI编码方式(中文操作系统下即为GBK字符集)

658d7a5edab046c38cc417712d2c3ba3.png

解决方案二:在使用javac编译时,可以指定源文件的字符编码

例如:javac -encoding utf-8 Review01.java

十一、编码的规范格式

  • 注意缩进:在每行开头定位光标,使用tab键缩进。
  • 必要的空格:变量类型、变量、赋值符号、变量值之间填充相应空格,更美观。比如: int num = 10

十二、HelloWorld小结

A.java的程序结构与格式

结构:

类{

        方法(){

                语句;

        }

}

格式:

  • 每一级缩进一个tab键
  • {}的左半部分在行尾,右半部分单独一行。与和它成对的"{"的行首对齐。

B.java程序的入口:main方法

public static void main(String[] args){

 

}

C.常见的两种输出语句

换行输出语句:先输出内容,完毕后进行换行。(ln表示的是line:行)(输出内容可为空,只做换行)

System.out.println(输出内容);

直接输出语句:输出语句,完毕后不换行。(输出内容为空,编译报错)

System.out.print(输出内容);

 

 D.源文件名与类名

1.源文件名是否必须与类名一致?

  • 如果这个类不是public,那么源文件名可以和类名不一致。但是不便于代码维护。
  • 如果这个类是public,那么要求源文件名必须与类名一致。否则编译报错。
  • 我们建议大家,不管是否是public,都与源文件名保持一致,而且一个源文件尽量只写一个类,目的是为了好维护。

2.一个源文件中是否可以有多个类?

  • 一个源文件中可以有多个类,编译后会生成多个.class字节码文件。
  • 但是一个源文件只能有一个public的类。

十三、注释(comment)

A.什么是注释?

源文件中用于解释说明程序的文字就是注释。

B.注释的作用

注释是一个程序员必须要养成的良好编程习惯。在实际开发中,程序员可以先将自己的思想通过注释整理出来,再用代码去实现。如果没有注释,当日久天长之后,随着代码量增多就会忘了很久前写的代码的作用,修改起来极其困难。注释提高了程序的可阅读性,也是调试程序的重要方法。

程序员最讨厌的两件事:

一件是自己写代码要求加注释,另一件是接收别人的代码没有注释。

C.注释的类型

  • 单行注释
//注释文字
  • 多行注释

/*

注释文字1

注释文字2

注释文字3

*/

  • 文档注释(java特有)

/**

        @author    指定java程序的作者

        @version    指定源文件的版本

*/

D.需要注意的事

  • 对于单行和多行注释,被注释的文字,不会不会出现在字节码文件中,进而不会被JVM(java虚拟机)解释执行。

  • 多行注释里面不允许有多行注释嵌套。

  • 文档注释内容可以被JDK提供的工具 javadoc 所解析,生成一套以网页文件形式体现的该程序的说明文档。

//单行注释
/*
多行注释
*/
/**
文档注释演示。这是我的第一个Java程序!^_^
@author songhk
@version 1.0
*/
public class HelloWorld{
    
    /**
    Java程序的入口
    @param args main方法的命令参数
    */
    public static void main(String[] args){
        System.out.println("hello");
    }
}

javadoc -d mydoc -author -version HelloWorld.java

ef55283973cf40f8919279cc5227500a.png十四、Java API开发文档

  • API (Application Programming Interface,应用程序编程接口)是 Java 提供的基本编程接口。

  • Java语言提供了大量的基础类,因此 Oracle 也为这些基础类提供了相应的说明文档,用于告诉开发者如何使用这些类,以及这些类里包含的方法。大多数Java书籍中的类的介绍都要参照它来完成,它是编程者经常查阅的资料。

  • Java API文档,即为JDK使用说明书、帮助文档。类似于:新华字典

  • 下载API文档地址:

在线看:Overview (Java SE 17 & JDK 17)module indexhttps://docs.oracle.com/en/java/javase/17/docs/api/index.html

离线下载:

Java Development Kit 17 Documentationhttps://www.oracle.com/java/technologies/javase-jdk17-doc-downloads.html

十五、java语言的优缺点

        Java确实是从C语言和C++语言继承了许多成份,甚至可以将Java看成是类C语言发展和衍生的产物。但是java“青出于蓝,而胜于蓝”。

1.优点

跨平台性:跨平台性是java语言的核心优势。Java在最初设计时就很注重移植和跨平台性。(比如:Java的int永远都是32位。不像C++可能是16,32,可能是根据编译器厂商规定的变化。)通过Java语言编写的应用程序在不同的系统平台上都可以运行,“Write once , Run Anywhere”(一次编译,到处运行)。其原理就是JVM,只要在需要运行 java 应用程序的操作系统上,先安装一个Java虚拟机 (JVM ,Java Virtual Machine) 即可。由JVM来负责Java程序在该系统中的运行。

2b7374c4e64a42f9b4173d13c16e105f.png

面向对象性:面向对象是一种程序设计技术,非常适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚,低耦合的标准。

健壮性:吸收了C/C++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请与释放等),提供了一个相对安全的内存管理和访问机制。

安全性高:Java适合于网络/分布式环境,需要提供一个安全机制以防恶意代码的攻击。如:安全防范机制(ClassLoader类加载器),可以分配不同的命名空间以防替代本地的同名类、字节代码检查。

简单性:Java就是C++语法的`简化版`,我们也可以将Java称之为“`C++--`”。比如:头文件,指针运算,结构,联合,操作符重载,虚基类等。

高性能:Java最初发展阶段,总是被人诟病“性能低”;客观上,高级语言运行效率总是低于低级语言的,这个无法避免。Java语言本身发展中通过虚拟机的优化提升了几十倍运行效率。比如,通过JIT(JUST IN TIME)即时编译技术提高运行效率。其实:Java低性能的短腿,已经被完全解决了。业界发展上,我们也看到很多C++应用转到Java开发,很多C++程序员转型为Java程序员。

2.缺点

  • 语法过于复杂、严谨,对程序员的约束比较多,与python、php等相比入门较难。但是一旦学会了,就业岗位需求量大,而且薪资待遇节节攀升

  • 一般适用于大型网站开发,整个架构会比较重,对于初创公司开发和维护人员的成本比较高(即薪资高),选择用Java语言开发网站或应用系统的需要一定的经济实力。

  • 并非适用于所有领域。比如,Objective C、Swift在iOS设备上就有着无可取代的地位。浏览器中的处理几乎完全由JavaScript掌控。Windows程序通常都用C++或C#编写。Java在服务器端编程和跨平台客户端应用领域则很有优势。

十六、JVM功能说明

JVM(Java Virtual Machine,Java虚拟机):是一个虚拟的计算机,是Java程序的运行环境。JVM具有指令集并使用不同的存储区域,负责执行指令,管理数据、内存、寄存器。

8d9733d482974935a792182d91753e4e.png

功能一:实现java程序的跨平台性

我们编写的Java代码,都运行在JVM 之上。正是因为有了JVM,才使得Java程序具备了跨平台性。

17a2c19591894389b44fbc43300038ae.png

使用JVM前后对比(x86、arm等都是系统架构,即使用的指令集):51b274959f554f20b9d9a3f552ee858a.png

执行java程序,在不同操作系统中需要安装不一样的JVM。又因为JVM在JDK包中,所以不同的操作系统需要下载不同的JDK。

e987b287cc364443ae8d608a10f3bd33.png

功能二: 自动内存管理(内存分配、内存回收)

  • Java程序在运行过程中,涉及到运算的数据的分配存储等都由JVM来完成

  • Java消除了程序员回收无用内存空间的职责。提供了一种系统级线程跟踪存储空间的分配情况,在内存空间达到相应阈值时,检查并释放可被释放的存储器空间。

  • GC的自动回收,提高了内存空间的利用效率,也提高了编程人员的效率,很大程度上减少了因为没有释放空间而导致的内存泄漏

面试题:

Java程序还会出现内存溢出和内存泄漏问题吗?

答:会!

内存溢出:当内存的容量已经放不下新的数据的时候就会产生内存溢出。虽然java有垃圾回收机制,但是如果内存中现有的数据都需要使用(即并非垃圾),那么就无法清理继而产生内存溢出。

内存泄漏:当内存中的垃圾数据被垃圾回收机制判断为并非垃圾,所以没有清理。这就是内存泄漏。

所以内存泄漏可能会到处内存溢出。

4b58a0aeea704ec88f9cc03ce473b8d2.png

 

 

  • 28
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程学无止境

你的鼓励是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值