一 . java语言概述——Java基础篇

一 . java语言概述——Java基础

发展阶段:

发行版本发行时间备注
Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包
Java 1.11997.02.19JavaOne会议召开,创当时全球同类会议规模之最。
Java 1.21998.12.08Java拆分成:J2SE(标准版)、J2EE(企业版)、J2ME(小型版)
Java 1.32000.05.08
Java1.42004.02.06
Java 5.02004.09.30①版本号从1.4直接更新至5.0;②平台更名为JavaSE、JavaEE、JavaME
Java 6.02006.12.112009.04.20 Oracle宣布收购SUN公司
2009.04.20Oracle公司收购SUN,交易价格74亿美元。
Java 7.02011.07.02
Java 8.02014.03.18此版本是继Java 5.0以来变化最大的版本。是长期支持版本(LTS)
Java 9.02017.09.22①此版本开始,每半年更新一次;②Java 9.0开始不再支持windows 32位系统
Java 10.02018.03.21
Java 11.02018.09.25JDK安装包取消独立JRE安装包,是长期支持版本(LTS)
Java 12.02019.03.19
Java17.02021.09发布Java 17.0,版本号也称为21.9,是长期支持版本。
Java19.02022.09发布Java19.0,版本号也称为22.9。
一、Java语言的优缺点
1、跨平台性:多平台使用,linux、macOS、window,编写一个Java代码,可以在多个平台中使用,在不同系统上安装不同版本的JVM,
将其称为“write once,Run anywhere”,JVM包含在JDK中,各个系统的JDK不一样。2、面向对象性:是一种程序设计技术,非常适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚、低耦合的标准。3、健壮性:吸收了c/c++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请和释放等),提供了一个相对安全的内存管理和访问机制。4、安全性高:5、简单性:6、高性能:通过JITJUST IN TIME)即时编译技术提高运行效率。缺点:
1、语法过于复杂、严谨
2、一般适用大型网站开发,整个架构会比较重。

二、JVM功能说明

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

2、功能1:实现Java程序的跨平台性

3、功能2:制动内存管理(内存分配、内存回收)

面试题:Java程序还会出现内存溢出和内存泄漏问题吗?
YES!

1、一个“.java”源文件中是否可以包含多个类?有什么限制?
是!
一个源文件中可以有多个类,但是的最多智能有个public进行声明,且要求public的类的命名要与源文件名相同,

2、Java的优势?
跨平台性:多平台使用,linux、macOS、window,编写一个Java代码,可以在多个平台中使用,在不同系统上安装不同版本的JVM,
将其称为“write once,Run anywhere”,JVM包含在JDK中,各个系统的JDK不一样。

面向对象性:是一种程序设计技术,非常适合大型软件的设计和开发。面向对象编程支持封装、继承、多态等特性,让程序更好达到高内聚、低耦合的标准。健壮性:吸收了c/c++语言的优点,但去掉了其影响程序健壮性的部分(如指针、内存的申请和释放等),提供了一个相对安全的内存管理和访问机制。
安全性高:简单性:高性能:通过JIT(JUST IN TIME)即时编译技术提高运行效率。

重:有大量的开源框架

3、常用的几个命令行操作有哪些?

总结:
1Java程序编写和执行的过程
步骤1:编写。将Java代码编写在.java结尾的文件中
步骤2:编译。针对与.Java结尾的源文件进行编译操作。格式:javac 源文件.java
步骤3:运行。针对于编译后生成的字节码文件,进行解释运行。格式:java 字节码文件名2、针对于步骤1的编写说明class HelloChina{public static void main(String[] args){System.out.println("hello,world!!中国")}
}其中,
① class:关键字,表示“类”,后面跟着类名。
② main()方法的格式是固定的。public static void main(String[[] args)如果非要有些变化,只能变化String[[] args结构。可以写成:方式1String args[]  方式2String[] aargs:全程是arguments,简写成args③ Java程序中,严格区分大小写。
④ 从控制台输出数据的操作:System.out.println("输出的信息");输出数据会换行System.out.print("输出的信息");输出数据不会换行
⑤ 每一行执行语句要以“;”结束。3、针对于步骤2编译的说明。
① 如果编译不通过。可以考虑的问题:问题1:查看编译的文件名、文件路径是否出现错误问题2:查看代码中是否语法、编写错误 
② 比那一以后,会生成1个或者多个字节码文件。每一个字节码对应一个java类,并且字节码文件名与类名相同。补充:JDK中有JREJRE中有JVM
class HelloJava{public static void main(String[] args){System.out.println("world word");}
}4、针对于步骤3运行的说明。
① 我们针对于字节码文件对应的Java类进行的。
要注意区分大小写!
② 如果运行不通过,可以考虑的问题:
问题1:查看解释运行的类名、字节码文件路径是否书写错误。
问题2:可能存在运行时的异常。5、一个源文件中可以声明多个类,但是最多智能有一个类使用public进行声明。
且要求声明为public的类的类名与源文件相同。
老师:.计算机的组成 软件 硬件计算机语言的发展  机器语言  汇编语言   高级语言
二.java发展史java之父 詹姆斯高斯林SUN --> Oracle.JDK的卸载和安装

四.环境变量的配置
为什么配置?
如何配置
问题:‘javac’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
为什么配置环境变量: 想要在任何位置都能使用 java javac
如何配置:
方式一:
将jdk安装目录bin一层 放到环境变量中系统变量的path内即可
我的电脑 --> 右键–> 属性–> 高级系统设置–> 环境变量–> 系统变量–> path–>
新建 将jdk安装目录bin一层 粘贴进去
C:\Program Files\Java\jdk-17\bin
一路确定下去 关闭之前的dos窗口 重写打开 输入javac 进行测试
方式二: 新建一个环境变量JAVA_HOME
为什么配置JAVA_HOME?
java已经成为一个平台 为了给其他软件使用java提供一个窗口
如何配置:
系统变量中 新建一个环境变量JAVA_HOME
变量名: JAVA_HOME
变量值: C:\Program Files\Java\jdk-17 (jdk安装目录bin的上一层)

	环境变量中:系统变量: 所有用户有效用户变量: 针对当前用户有效方式一复用JAVA_HOMEC:\Program Files\Java\jdk-17\bin%JAVA_HOME%\bin

六.动态编译技术
运行一个java文件需要三步:
1.写源代码 Xxx.java
2.编译 javac Xxx.java
3.运行 java Xxx
-------------------
jdk11后有了动态编译的技术 直接将.java文件 动态运行 不需要再显示的产生.class文件
运行一个java文件需要2步:
1.写源代码 Xxx.java
2.运行 java Xxx.java
七.打印语句
print()
println()
\t \n
八.注释
注释: 对代码起解释说明的作用
注释的分类:
单行注释://
多行注释: /* * /
文档注释: /** * /

注意:
1.多行注释 和文档注释 不能嵌套使用
2.注释不参与编译
3.反编译
.java --> .class 编译
.class --> .java 反编译
九.标识符
标识符: java 对类 方法 变量 等命名时采用的字符序列
命名规则:
1.字母数字下划线_美元符$组成
2.数字不能开头
3.不能是java中的关键字保留字和其他特殊字符 true false null
4.严格区分大小写
命名规范:
1.见名之意
2.对类进行命名时 所有单词首字母大写 HelloWorld IdentifierTest XxxYyyZzz

   3.对变量方法进行命名时 第一个单词首字母小写从第二个单词开始首字母大写 xxxYyyZzzgetNum  getUserName4.对包进行命名 所有的字母都小写  com.atguigu.oop5.对常量进行命名时 所有的字母都大写 单词与单词之间使用下划线连接MAX_VALUE  MIN_VALUE

十.数据类型
java的数据类型:
基本类型数据:四类八种
整数类型:
byte short int long
浮点类型:
float double
布尔类型:
boolean
字符类型:
char

  引用类型数据:只要不是基本数据类型 那么就是引用数据类型String ""数组  对象

六.动态编译技术
运行一个java文件需要三步:
1.写源代码 Xxx.java
2.编译 javac Xxx.java

3.运行 java Xxx

​ jdk11后有了动态编译的技术 直接将.java文件 动态运行 不需要再显示的产生.class文件
​ 运行一个java文件需要2步:
​ 1.写源代码 Xxx.java
​ 2.运行 java Xxx.java

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

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

相关文章

用户头像(图片文件)上传(Vue + nodejs 前后端)

文件上传&#xff08;图片上传&#xff09; 前端&#xff1a;Vue3 element-plus 后端&#xff1a;express 前端 封装一个 Upload 组件和一个 upload 方法。 Upload 组件 <!-- auto-upload 选择好图片后立刻自动上传后端还是手动点击某按钮上传后端 --><el-upload…

jax可微分编程的笔记(3)

jax可微分编程的笔记&#xff08;3&#xff09; 第3章 初识JAX JAX是Google开发的高性能数值计算和自动微分库&#xff0c;提供自动微分 即时编译和矢量并行化三大功能。JAX选择将函数编程的思想贯穿 始终。 简单来说&#xff0c;JAX库是GPU加速&#xff0c;支持自动微分的Nu…

android pdf框架-4,分析barteksc/PdfiumAndroid源码1

关于barteksc/PdfiumAndroid barteksc/PdfiumAndroid 这个源码被,引用的次数是比较高的,flutter的几个pdf库也是引用它.它使用福昕的开源sdk.福昕阅读器我早期的时候用,交互一般,渲染也不如mupdf,有些pdf中文显示不了,体积小点. barteksc/PdfiumAndroid已经是一个完善的sdk了,…

微信小程序开发(实战案例):本地生活 - 列表页面开发(动态渲染处理)、节流防抖(节流阀应用)

文章目录 本地生活 - 列表页面开发一、将九宫格分类换成navigator组件二、动态设置商品列表页的 title三、动态渲染商品列表页面四、上拉触底加载数据五、添加Loading加载效果六、数据加载节流防抖处理 本地生活 - 列表页面开发 导入我们上次写的 本地生活 - 首页开发的项目 运…

leetcode 50. Pow(x, n)

目录 函数定义&#xff1a; 2. 处理特殊情况&#xff1a; 3. 处理负指数&#xff1a; 4. 处理偶数指数&#xff1a; 5. 处理奇数指数&#xff1a; 时间复杂度 空间复杂度 class Solution { public:double myPow(double x, int n) {if(n 0){return 1;}if(n 1) return x…

C#设计模式---工厂方法模式

24种常用设计模式 创建型模式&#xff1a;抽象工厂、生成器、工厂方法、原型、单例&#xff1b; 结构型模式&#xff1a;适配器、桥接、组合、装饰、外观、享元、代理&#xff1b; 行为模式&#xff1a;责任链、命令、迭代器、中介者、备忘录、观察者、状态、策略、模板方法…

二分算法(c++版)

二分的本质是什么&#xff1f; 很多人会认为单调性是二分的本质&#xff0c;但其实其本质并非单调性&#xff0c;只是说&#xff0c;有单调性的可以进行二分&#xff0c;但是有些题目没有单调性我们也可以进行二分。其本质其实是一个边界问题&#xff0c;给定一个条件&#xf…

golang的map是如何扩容的【重点】

具体内容参考链接 https://zhuanlan.zhihu.com/p/616979764 Golang的map就是使用哈希表作为底层实现&#xff0c;map 实际上就是一个指针&#xff0c;指向hmap结构体。 Go 语言中的 map 在扩容时&#xff0c;会重新分配更大的内存空间&#xff0c;并将原有的键值对重新哈希到新…

【机器学习基础】一元线性回归(适合初学者的保姆级文章)

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;机器学习 欢迎订阅&#xff01;后面的内容会越来越有意思~ &#x1f4a1;往期推荐&#xff1a; 【机器学习基础】机器学习入门&#xff08;1&#xff09; 【机器学习基…

python 函数-03-参数

入参不需要指定类型&#xff0c;只需要参数名称即可 【特殊性&#xff0c;区别于java c#等】传参两种方式&#xff1a; 位置参数 如 cube_volume(1, 2, 3) 关键字参数 如 cube_volume(width 1, height 2, length 3)参数为可变对象&#xff0c;如当参数为列表时&#xff0c;在…

趣学贝叶斯统计:条件概率(1)

前言 到目前为止&#xff0c;我们只讨论了独立事件的概率。当一个事件的结果不影响另一个事件的结果时&#xff0c;这两个事件就是独立事件。例如&#xff0c;掷硬币时出现正面并不影响掷骰子是否会掷出6点。计算独立事件的概率要比计算非独立事件的概率容易得多&#xff0c;但…

ES6 字符串面试题

如何判断字符串 “Hello, World!” 是否以 “Hello” 开头&#xff1f; 答案&#xff1a; const str "Hello, World!"; const startsWithHello str.startsWith("Hello"); console.log(startsWithHello); // 输出 true如何判断字符串 “Hello, World!” …

C 标准库 - <stdlib.h>

简介 <stdlib.h> 头文件定义了四个变量类型、一些宏和各种通用工具函数。 库变量 下面是头文件 stdlib.h 中定义的变量类型&#xff1a; 序号变量 & 描述1size_t2wchar_t3div_t4ldiv_t 库宏 下面是头文件 stdlib.h 中定义的宏&#xff1a; 序号宏 & 描述1…

conntrack-tools 内核依赖,

1 内核依赖 You require a Linux kernel version > 2.6.18. Connection Tracking System. CONFIG_NF_CONNTRACKm CONFIG_NF_CONNTRACK_IPV4m CONFIG_NF_CONNTRACK_IPV6m (if your setup supports IPv6) nfnetlink: the generic messaging interface for Netfilter. CONF…

【深度学习:标记数据】为医生标记数据缓解疼痛

【深度学习&#xff1a;标记数据】为医生标记数据缓解疼痛 问题实验结果结论 我开始在物理学方面进行学术研究&#xff0c;但在第一年就退学了&#xff08;抱歉&#xff0c;休学了&#xff09;我的博士学位&#xff0c;并在定量金融领域做了很长一段时间。因此&#xff0c;在我…

宝塔面板安装了mysql5.7和phpMyadmin,但是访问phpMyadmin时提示502 Bad Gateway

操作流程截图如下&#xff1a; 原因是没有选择php版本 选择php版本 下一页找到phpMyAdmin&#xff0c;选择设置 目前只有纯净态&#xff0c;说明没有php环境&#xff0c;前去安装php环境 点击安装&#xff0c;选择版本&#xff0c;这里选择的是7.4版本&#xff0c;编译安…

创建者模式(Builder Pattern):构造复杂对象的通用解决方案

文章目录 **一、技术背景与应用场景****为何使用创建者模式&#xff1f;****典型应用场景包括但不限于&#xff1a;** **二、创建者模式定义与结构****三、使用步骤举例**四、优缺点分析总结 一、技术背景与应用场景 创建者模式是一种对象创建型设计模式&#xff0c;它通过将复…

Apache Doris 发展历程、技术特性及云原生时代的未来规划

文章目录 每日一句正能量前言作者介绍Apache Doris 特性极简架构高效自运维高并发场景支持MPP 执行引擎明细与聚合模型的统一便捷数据接入Apache Doris 极速 1.0 时代极速列式内存布局向量化的计算框架Cache 亲和度虚函数调用SIMD 指令集 稳定多源基于云原生向量数据库Milvus 的…

基于ZYNQ的PCIE高速数据采集卡的设计(三)硬件设计

采集卡硬件设计 3.1 引言 采集卡的硬件设计是实现采集功能的基础&#xff0c;良好的硬件设计可以使采集功能更容 易实现&#xff0c;方便软件开发。本章基于第二章的硬件设计方案来详细介绍采集卡硬件设计。 包括载卡和子卡的芯片的选型、配置和具体电路的设计。载卡和子卡…

蓝桥杯《修剪灌木》

题目描述 爱丽丝要完成一项修剪灌木的工作。有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晚会修剪一棵灌木&#xff0c;让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始&#xff0c;每天向右修剪一棵灌木。当修剪了最右侧的灌木后&#xff0c;她会…