初识Java

1.计算机语言发展史

在这里插入图片描述

1.1 机器语言

​ 使用0和1来缩写代码,开发者需要掌握硬件知识。

1.2 汇编语言

​ 使用英文单词来缩写,开发者需要掌握硬件知识。

1.3 高级语言

​ 使用英文单词来缩写,开发者不需要掌握硬件知识。

2. Java发展简史

2.1 Java的诞生

​ 在1991年时候,詹姆斯·高斯林(James Gosling)在SUN公司的工程师小组想要设计这样一种小型计算机语言。该语言主要用于像电视盒这样的消费类电子产品。

2.2 SUN公司简介

  • 美国SUN公司全称 Stanford University Network 。
  • 在中国大陆的正式中文名为"太阳计算机系统(中国)有限公司" 。
  • 在台湾中文名为"升阳电脑公司"。
  • 2009年,甲骨文(Oracle)公司宣布收购SUN。
  • 2010年,Java编程语言的共同创始人之一詹姆斯·高斯林(James Gosling)从Oracle公司辞职。

2.3 Java为什么被发明

  • Green项目
  • 应用环境:像电视盒这样的消费类电子产品
  • 要求:因为不同的厂商选择不同的CPU和操作系统,因此要求语言不能和特点的体系结构绑在一起,所以要求:语言本身是中立的,也是跨平台的。

2.4 Java的发展史

  • 1991年,SUN公司的Green项目(Oak语言)
  • 1995年,推出 Java 测试版
  • 1996年,JDK 1.0
  • 1997年,JDK 1.1
  • 1998年,JDK 1.2,大大改进了早期版本的缺陷,是一个革命性的版本,更名为 Java 2
  • 1999年,Java被分成J2SE,J2EE 和 J2ME ,JSP/Servlet 技术诞生
  • 2004年,J2SE 5.0 (1.5.0) Tiger 。为了表示这个版本的重要性,J2SE 1.5更名为J2SE 5.0
  • 2006年,J2XE 6.0 (1.6.0) Mustang野马。此时,Java的各种版本被更名,取消其中的数字“2”:J2EE更名为Java EE, J2SE更名为 Java SE, J2ME更名为 Java ME
  • 2011年,Java 7.0
  • 2014年,Java 8.0

2.5 Java各版本含义

  • J2EE(Java EE)

    Java 2 Enterprise Editon,定位在服务器端的应用。

  • J2SE(Java SE)

    Java 2 Standard Editon ,定位在个人计算机的应用上。

  • J2ME(Java ME)

    Java 2 Micro Edition ,定位在消费性电子产品的应用上。

3. Java的特点

3.1 Java是跨平台的

Java程序的跨平台主要是指字节码文件可以在任何具有Java虚拟机的计算机或者电子设备上运行,Java虚拟机中的Java解释器负责将字节码文件解释成为特定的机器码进行运行。

3.2 Java是简单的

  • 不再有#include 和#define 等预处理功能
  • 不再有struct、union及typedef
  • 不再有函数
  • 不再有指针、不再有多重继承
  • 不再有goto
  • 不再有操作符重载(Operatior Overloading)
  • 不再有全局变量
  • 不再有手动内存管理

3.3 Java是安全的

  • Java取消了强大但又危险的指针。由于指针可进行移动运算,指针可随便指向一个内存区域,而不管这个区域是否可用,这样做是危险的,因为原来这个内存地址可能存储着重要数据或者是其他程序运行所占用的, 并且使用指针也容易数组越界。
  • Java提供了自动内存管理机制,由垃圾回收器在后台自动回收。
  • Java在字节码的传输过程中使用了公开密钥加密机制(PKC)。
  • 而在运行环境提供了四级安全性保障机制:节码校验器 - 类装载器 - 运行时内存布局 - 文件访问限制。

3.4 Java是完全面向对象的

  • Java和C++都是面向对象语言。也就是说,它们都能够实现面向对象思想(封装,继承,多态)。
  • 由于C++为了照顾大量C语言使用者而兼容了C,使得自身仅仅成为了带类的C语言,多少影响了其面向对象的彻底性!
  • Java则是完全的面向对象语言,它句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了C++的固有缺陷。

3.5 Java是健壮的

Java是一种健壮的语言,吸收了C/C++ 语言的优点,但去掉了其影响程序健壮性的部分(如:指针、内存的申请与释放等)

4. Java跨平台原理

4.1 Java为什么能流行

外部环境因素

  • 互联网的爆发式发展

  • 互联网上的电脑硬件不同,软件环境差异较大,需要一个跨平台的语言

Java核心优势

  • ​ 跨平台

4.2 JVM虚拟机

JVM(JAVA VIRTUAL MACHINE)是一种规范,可以使用软件来实现,也可以使用硬件来实现,就是一个虚拟的用于执行bytecodes字节码的计算机。他也定义了指令集、寄存器集、结构栈、垃圾收集堆、内存区域。JVM是指在一台计算机上由软件或硬件模拟的计算机,它类似一个小巧而高效的CPU。
Java虚拟机是Java最核心技术,也是跨平台的基础。

  • 可以使用软件来实现
    例如:IBM, SUN, BEA等,当然你也可以自己写一个JVM
  • 可以使用硬件来实现
    例如:比如SUM/Intel公司正在研发的java芯片

4.3 Java和JVM跨平台特性

计算机的高级编程语言类型一般为: 编译型和解释型。而Java语言是两种类型的结合。
编译型先把整个英文的文章翻译成中文,然后再阅读。
优点阅读的时候效率高。
缺点阅读之前需要等待英语老师翻译好英文的文章。

解释型:英语老师逐行给我们翻译,也就是阅读一行翻译一行。
优点:阅读之前无需等待
缺点:阅读的时候效率低

常见 Java程序的编写和执行步骤为:

  1. 通过编辑器编写 Java 源程序源文件(源文件名 .java)。
  2. 通过编译器将源程序编译成字节码文件(类名.class)。
  3. 通过解释器将字节码文件解释为对于机器语言并运行(在JVM中运行字节码文件)。

在这里插入图片描述

以上图片就是Java文件编译成class文件后,class字节码文件在不同设备上执行的过程。通过在不同设备上安装虚拟机,从而实现了跨平台,可移植的功能。

4.4 Java和C跨平台原理的比较

  • Java : 一次编译,到处运行

在这里插入图片描述

  • C:多次编译,到处运行

在这里插入图片描述

5.常用DOS命令

5.1 DOS简介

DOS是英文“Disk Operating System”的缩写,其中文含意是“磁盘操作系统”。DOS是单用户、单任务的操作系统。从1981年直到1995年的15年间,磁盘操作系统在IBM PC兼容机市场中占有举足轻重的地位。而且,若是把部分以DOS为基础的Microsoft Windows版本,如Windows 95、Windows 98和Windows Me等都算进去的话,那么其商业寿命至少可以算到2000年。微软的所有后续版本中,磁盘操作系统仍然被保留着。家族包括MS-DOS、PC-DOS、DR-DOS、PTS-DOS、ROM-DOS、JM-OS等,其中以MS-DOS最为著名。虽然这些系统常被简称为“DOS”,但几乎没有系统单纯以“DOS”命名(只有一个毫无关连的1960年代IBM大型主机操作系统以此命名)。此外,有几个和DOS无关、在非x86的微计算机系统上运行的磁盘操作系统在名称中也有“DOS” 字眼,而且在专门讨论该机器的场合中也会简称为“DOS”(例如:AmigaDOS、AMSDOS、ANDOS、AppleDOS、Atari DOS、Commodore DOS、CSI-DOS、ProDOS、TRS-DOS等),但这些系统和DOS可执行文件以及MS-DOS API并不兼容。

5.2 DOS命令简介

1.如何打开DOS窗口???
方式一:在程序开始位置搜索“cmd”,然后执行cmd.exe程序
方式二:快捷键windows+r,然后输入“cmd”敲回车即可!

2.切换盘符
D:
e:
注意:盘符名字大小写都可以,不区分大小写!

3.切换目录
cd 文件夹名字 --> 进入某个文件夹
cd 路径 --> 进入某个文件夹
cd … --> 返回上一级目录
cd / --> 返回根目录
注意:“…”指的就是上一级目录!

4.常见的赋值命令
tab键 --> 自动补全
cls命名 --> 清屏命令
上下键 --> 查阅上一条或下一条命名
exit命令 --> 关闭DOS命令窗口

5.查看当前目录下的文件或文件夹
dir --> 查看当前目录下的文件或文件夹

6.文件夹操作
md 文件夹名 --> 创建文件夹
rd 文件夹名 --> 删除文件夹

7.文件操作
copy 需要拷贝文件的路径 把文件拷贝到哪里的路径
del 需要删除的文件
注意:操作文件的时候,可以在当前目录下操作某一个文件,也可以操作指定目录下的某一个文件
a)操作当前目录下的文件,例如:F:>del demo.docx
b)操作执行目录下的文件,例如:E:>del F:\demo.docx

8.help命名
查阅DOS所有的命名!
注意:DOS命名不区分大小写,但是路径、文件夹或文件名需要区分!

9.查阅IP地址
ipconfig

6. Java开发环境搭建

6.1 JRE简介

JRE是Java Runtime Environment的缩写,是Java程序的运行环境,包含了java虚拟机,java基础类库。JRE是使用 Java 语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。

6.2 JDK简介

JDK是Java Development Kit的缩写,是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具。如果你需要运行 Java 程序,只需安装JRE就可以了。如果你需要编写Java程序,则需要安装JDK。

在这里插入图片描述

6.3 配置 Java开发环境

6.3.1 卸载JDK(建议使用JDK 1.8版本)

根据需求再决定是否需要卸载,如果已经正确安装JDK则可以略过安装步骤。

6.3.2 安装JDK
6.3.3 验证JDK安装

输入命令:java -version

出现如下图所示,则安装成功:
在这里插入图片描述

6.3.4 环境变量配置

环境变量就是为相关命令提供一个路径信息,告诉它到哪里去找相关文件信息:

  • JAVA_HOME:C:\Program Files\Java\jdk1.8.0_14
  • path:指定javac.exe和java.exe两个命令的位置。执行dos命令,系统会在path指定的路径中寻找该命令对应的可执行文件,将“%JAVA_HOME%\bin”增加到path中,多个目录用英文分号“;”隔开。
  • classpath:指定解释的时候class文件的位置,JDK5.0以上就不需要配置这个环境变量!JRE会自动搜索当前路径下的类文件及相关jar文件。

【注意】:配置完java环境变量后,最好重启DOS窗口,重启后新配置的环境变量才能生效。

6.3.5 验证环境变量配置

开发DOS窗口,在任意文件目录(不是在bin目录下)下输入命令:javac

出现如下图所示,则配置成功:

在这里插入图片描述

7.第一个JAVA程序

7.1 编辑阶段

刚开始阶段,可以在"记事本"编辑代码并保存在相应的磁盘上:

public class HelloWorld{	// 大括号是类的控制范围
	public static void main(String[] args){
		System.out.println("Hello World!");
	}
}

保存为:HelloWorld.java

注意:文件的扩展名,保证扩展名必须为.java(HelloWorld.java)

7.2 编译阶段

通过"Window" + R 快捷键进入并输入"cmd"回车进入DOS窗口,进入java文件所在目录,执行命令:javac HelloWorld.java。切记:编译时必须加上扩展名.java。

7.3 执行阶段

进入java文件所在目录,执行命令:java HelloWorld,以便在虚拟机中执行字节码(.class)文件。切记:运行的是类而非class文件,所以类名后不能加扩展名.class

7.4 总结和提升

public class HelloWorld{
    public static void main(String[] args){
        System.out.print("Hello World!");// print不换行
        System.out.println("Hello Java!");// println换行
    }
}

文件名:HelloWorld.java

关于类名(class name)

  1. 类的命名规范,应首字母大写同时采用驼峰式命名规范。
  2. 源文件中至多只有一个类能用public声明,并public修饰的类必须和文件名保持一致。
  3. 一个源文件可以有很多个未被public修饰的类(class),public修饰的类至多只有一个。
  4. 源文件中有很多少个class类,当源文件编译之后就有多少个字节码文件。

关于语法规范

  1. 花括号用于划分程序的各个部分,方法和类的代码都必须以"{“开始 ,”}"结束。
  2. 代码中每条语句以英文的分号";"结束,注意中英文之间的切换。
  3. Java代码对字母大小写敏感,如果出现了大小写拼写错误,程序无法运行(例如string)。
  4. main()方法是Java应用程序的入口方法,它有固定的书写格式。
  5. print()或println()中的内容用英文双引号包裹,代表内容原样输出。

编译时常见的问题

第一次难免会出现很多问题,但是出现问题不要怕,这是一件好事,解决问题的过程就是提成进步的过程。以下是初学者常犯的一些错误:

  1. 环境变量配置错误,无法执行javac命令;
  2. 没有在源文件所在目录下执行javac HelloWorld**.**java 命令;
  3. 执行javac命令后面的文件名写错,例如字母大小写;
  4. 语法格式错误,例如main方法书写错误,使用了中文的分号等;
  5. 如果文件中的类名用public来修饰,那么文件名和public修饰的类名必须保持一致。
  6. 使用notepad++发生的编码格式错误。因为DOS命令窗口默认编码为GBK,解决这个问题需要把notepad++的编码修改为ANSI即可。

【注意】如果我们对源代码做了修改,那么需要对修改后的源文件先进行编译,然后再执行编译出来的字节码文件。

7.5 编码风格

  • 注意缩进!

    一定要有缩进。缩进就像人得体的衣着一样!

  • 成对编程!

    括号、引号都应该写完后,再往里加内容。

  • 见名知意!

    最基本要求

8.注释

注释就是程序员为读者(此处的作者指的是开发人员)作的说明的,是一种提高程序可读性的一种手段。源文件编译后,注释不会出现在字节码文件中,即Java编译器编译时会跳过注释语句。

8.1 单行注释

单行注释使用“//”开头,“//”后面的内容均为注释。

8.2 多行注释

多行注释以“/*”开头以“*/”结尾,在“/*”和“*/”之间的内容为注释,在使用多行注释时注意,多行注释不能嵌套。

8.3 文档注释

文档注释以“/**”开头以“*/”结尾,注释中包含一些说明性的文字及一些JavaDoc标签(后期再写项目时,可以生成项目的API)

9.常用的开发工具

9.1 文本编辑器

  • UltraEdit
  • EditPlus
  • notepad++
  • sublime

9.2 集成开发环境(IDE)

  • Eclipse:一个开放源代码的、基于Java的可扩展开发平台的开源软件。
  • MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境(后期项目阶段使用,商业软件要收费) 。
  • IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
  • NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。

10.反编译工具

10.1 编译和反编译理解

编译:把源代码编译为字节码文件。

反编译:字节码文件反编译为源代码

10.2 反编译命令

反编译步骤:

  1. javac把源文件编译为字节码文件,例如:Person.java ——> Person.class
  2. javap进行反编译操作,例如:javap Person

10.3 反编译软件

于Java的可扩展开发平台的开源软件。

  • MyEclipse:由Genuitec公司开发的一款商业化软件,是应用比较广泛的Java应用程序集成开发环境(后期项目阶段使用,商业软件要收费) 。
  • IntelliJ IDEA:在代码自动提示、代码分析等方面的具有很好的功能。
  • NetBeans:开放源码的Java集成开发环境,适用于各种客户机和Web应用。

10.反编译工具

10.1 编译和反编译理解

编译:把源代码编译为字节码文件。

反编译:字节码文件反编译为源代码

10.2 反编译命令

反编译步骤:

  1. javac把源文件编译为字节码文件,例如:Person.java ——> Person.class
  2. javap进行反编译操作,例如:javap Person

10.3 反编译实现方式

  1. 使用JDK提供的javap.exe来实现
  2. 使用jd-gui.exe程序来实现
以下是对提供的参考资料的总结,按照要求结构化多个要点分条输出: 4G/5G无线网络优化与网规案例分析: NSA站点下终端掉4G问题:部分用户反馈NSA终端频繁掉4G,主要因终端主动发起SCGfail导致。分析显示,在信号较好的环境下,终端可能因节能、过热保护等原因主动释放连接。解决方案建议终端侧进行分析处理,尝试关闭节电开关等。 RSSI算法识别天馈遮挡:通过计算RSSI平均值及差值识别天馈遮挡,差值大于3dB则认定有遮挡。不同设备分组规则不同,如64T和32T。此方法可有效帮助现场人员识别因环境变化引起的网络问题。 5G 160M组网小区CA不生效:某5G站点开启100M+60M CA功能后,测试发现UE无法正常使用CA功能。问题原因在于CA频点集标识配置错误,修正后测试正常。 5G网络优化与策略: CCE映射方式优化:针对诺基亚站点覆盖农村区域,通过优化CCE资源映射方式(交织、非交织),提升RRC连接建立成功率和无线接通率。非交织方式相比交织方式有显著提升。 5G AAU两扇区组网:与三扇区组网相比,AAU两扇区组网在RSRP、SINR、下载速率和上传速率上表现不同,需根据具体场景选择适合的组网方式。 5G语音解决方案:包括沿用4G语音解决方案、EPS Fallback方案和VoNR方案。不同方案适用于不同的5G组网策略,如NSA和SA,并影响语音连续性和网络覆盖。 4G网络优化与资源利用: 4G室分设备利旧:面对4G网络投资压减与资源需求矛盾,提出利旧多维度调优策略,包括资源整合、统筹调配既有资源,以满足新增需求和提质增效。 宏站RRU设备1托N射灯:针对5G深度覆盖需求,研究使用宏站AAU结合1托N射灯方案,快速便捷地开通5G站点,提升深度覆盖能力。 基站与流程管理: 爱立信LTE基站邻区添加流程:未提供具体内容,但通常涉及邻区规划、参数配置、测试验证等步骤,以确保基站间顺畅切换和覆盖连续性。 网络规划与策略: 新高铁跨海大桥覆盖方案试点:虽未提供详细内容,但可推测涉及高铁跨海大桥区域的4G/5G网络覆盖规划,需考虑信号穿透、移动性管理、网络容量等因素。 总结: 提供的参考资料涵盖了4G/5G无线网络优化、网规案例分析、网络优化策略、资源利用、基站管理等多个方面。 通过具体案例分析,展示了无线网络优化中的常见问题及解决方案,如NSA终端掉4G、RSSI识别天馈遮挡、CA不生效等。 强调了5G网络优化与策略的重要性,包括CCE映射方式优化、5G语音解决方案、AAU扇区组网选择等。 提出了4G网络优化与资源利用的策略,如室分设备利旧、宏站RRU设备1托N射灯等。 基站与流程管理方面,提到了爱立信LTE基站邻区添加流程,但未给出具体细节。 新高铁跨海大桥覆盖方案试点展示了特殊场景下的网络规划需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值