Post

day01环境变量/hello world/常量

使用 Java 开于发环境安装及配环境变量,准确全面地入门级程序撰写,强调应用简洁明了,并传达核心信息。以下是针对正文的摘要编辑的: 安装Java环境与安装JDK: 1-配置环境变量JHAV_HOME: -编写入门级程序 -使用注释解释代码 -使用Idea开发工具 ## Java概况介绍高级概念: -简介:计算机语言发展历程 -Java生态圈:平台文化社区 -Java语言:应用历史及优劣 ## 开字节及Java环境需求: -Java虚拟机(JVM)作用:实现多平台支持 -JDK和JRE:开发工具与运行时件 -配置步骤:官网下载JDK ## 编写与HelloWorld: ```创建主“义方法“注释 -程序开发步骤 -注意事项:编码问题生 ## IDEA简介:开发工具专用于Java调试速开发 -功能特点:自动编译·自动运行 -创建一个项目的基本步骤:设置src目录 -解决运行效果不佳问题:配置JDK -使用Idea智能提示:快捷键功能使用 通义灵码要求用户登录注册阿里云获取更多功能支持。

javaSE 阅读 34 点赞 1 评论 0
今日重点:
  1.会安装java环境->jdk
  2.会配置环境变量->JAVA_HOME
  3.会手写一个入门程序
  4.会使用注释对代码进行解释说明
  5.会使用idea开发工具

第一章 Java概述

1.1 JavaSE课程体系介绍

JavaSE知识模块介绍

  • 第一部分:计算机编程语言核心结构:数据类型运算符流程控制数组、…

    固定语法
    
  • 第二部分:Java面向对象核心逻辑:类和对象封装继承多态抽象接口、…

    就是为了少写代码:很多功能有对象都帮我们实现了,我们直接找来这个对象,调用人家准备好的功能,就能完成我们想要的需求
    
  • 第三部分:JavaSE核心高级应用:集合I/O多线程

  • 第四部分:Java新特性:Lambda表达式函数式编程新Date/Time API接口的默认、静态和私有方法、…

1.2 计算机语言介绍(了解)

计算机编程语言是什么

所谓计算机编程语言,就是人们使用编程语言对计算机下达的命令,让计算机完成人们需要的功能。

1.说白了:计算机能听懂的语言,我们可以利用计算机编程语言对计算机下达指令,让计算机帮我们做事儿
2.计算机编程语言分好多种语言:
  c语言
  java语言
  python
  PHP等

计算机语言发展

  • 第一代:机器语言(计算机很庞大,都是0和1组成的指令,而且需要同时按下多个键才能完成一个指令,而且用0和1组成的一个一个指令,所以工程师们就要记住0和1的各种组合以及对应的指令)

  • 第二代:汇编语言(面向机器的语言,因为直接面对机器需要记一些 0 和1 的指令,很痛苦,所以就出现了很多助记词,比如:add.汇编语言现在还在使用,接近于机器语言,越接近机器语言,速度越快,而且最终还是转成0和1存储)

  • 第三代:高级语言(更接近我们人类语言,常见的有很多,比如C语言,java等)

    不管是第几代最终都要向机器语言靠拢 -> 因为CPU只认0和1
    我们电脑上所有能看到的内容都是cpu将0和1转换过来的
    

计算机语言排行榜

image-20201109084739737

计算机语言走势

image-20200820180851296

1.3 Java语言概述(了解)

Java生态圈

**Java是目前应用最为广泛的软件开发平台之一。**随着Java以及Java社区的不断壮大,Java 也早已不再是简简单单的一门计算机语言了,它更是一个平台、一种文化、一个社区。

**作为一个平台,**Java虚拟机扮演着举足轻重的作用。除了 Java语言,任何一种能够被编译成字节码的计算机语言都属于Java这个平台。Groovy、Scala、 JRuby、Kotlin等都是Java平台的一部分,它们依赖于Java虚拟机,同时,Java平台也因为它们变得更加丰富多彩。而且Java还可以跨平台

**作为一种文化,**Java几乎成为了 “开源”的代名词。在Java程序中,有着数不清的开源软件和框架。如Tomcat、Struts, Hibernate, Spring,MyBatis等。就连JDK和JVM自身也有不少开源的实现,如OpenJDK、Apache Harmony。可以说,“共享”的精神在Java世界里体现得淋漓尽致。

**作为一个社区,**Java拥有全世界最多的技术拥护者和开源社区支持,有数不清的论坛和资料。从桌面应用软件、嵌入式开发到企业级应用、后台服务器、中间件,都可以看到Java的身影。其应用形式之复杂、参与人数之众多也令人咋舌。可以说,Java社区已经俨然成为了一个良好而庞大的生mdc态系统。其实这才是Java最大的优势和财富。

Java 是最好的语言吗?

不是,因为在每个领域都有更合适的编程语言。

  • C 语言无疑是现代计算机软件编程语言的王者,几乎所有的操作系统都是 C 语言写成的。C里面有一个编译器,会将系统软件变成机器语言,让硬件识别,和硬件做交互.C++ 是面向对象的 C 语言,一直在不断的改进。

  • JavaScript 是能运行在浏览器中的语言,丰富的前端界面离不开 Javascript 的功劳。近年来的 Node.js 又在后端占有一席之地。

  • Python 用于系统管理,并通过高性能预编译的库,提供 API 来进行科学计算,文本处理等,是 Linux 必选的解释性语言。现在Python也被用于web开发、科学计算和统计、人工智能、网络爬虫等

  • Ruby 强于 DSL(领域特定语言),程序员可以定义丰富的语义来充分表达自己的思想。

  • Erlang 就是为分布式计算设计的,能保证在大规模并发访问的情况下,保持强壮和稳定性。

  • Go 语言内置了并发能力,可以编译成本地代码。当前新的网络相关项目,很大比例是由 Go 语言编写的,如 Docker、Kubernetes 等。

  • 编写网页用 PHP,函数式编程有 Lisp,编写 iOS 程序有 Swift/Objective-C。

  • R的思想是:它可以提供一些集成的统计工具,但更大量的是它提供各种数学计算、统计计算的函数,从而使使用者能灵活机动的进行数据分析,甚至创造出符合需要的新的统计计算方法

  • SQL 是用于访问和处理数据库的标准的计算机语言, 这类数据库包括:MySQL,Oracle, Sybase, SQL Server, DB2, Access 等等

一句话概括,能留在排行榜之上的语言,都是好的语言,在其所在的领域能做到最好。

Java语言发展历史

Java诞生于SUN(Stanford University Network),09年SUN被Oracle(甲骨文)收购。

Java之父是詹姆斯.高斯林(James Gosling)。

1615793633189

詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展,Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。

1996年发布JDK1.0版。

目前最新的版本是Java21。我们学习的Java17。

Java1995.05.23Sun公司在Sun world会议上正式发布Java和HotJava浏览器
Java 1.01996.01.23Sun公司发布了Java的第一个开发工具包
Java 1.11997.02.19
Java 1.21998.12.08拆分成: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公司
Java 7.02011.07.02
Java 8.02014.03.18
Java 9.02017.09.22①每半年更新一次;②Java 9.0开始不再支持windows 32位系统
Java 10.02018.03.21
Java 11.02018.09.25JDK安装包取消独立JRE安装包,长期支持版本
Java 12.02019.03.19
Java 13.02019.9.18
Java 14.02020.3.17
Google和Oracle的侵权事件:

Google 和 Oracle 纠缠多年的“Java 侵权案”又有了新的判决结果。Google 在此次对决中败诉,并可能需要支付高达88亿美元的赔偿金。这个案件还引发关于 API(应用程序编程接口)是否应该受版权保护的争议。

其实早在2010年8月,Oracle 就已经向法院起诉 Google 侵权,声称 Google 在开发 Android 平台时未经授权就使用了 Oracle 的 Java 应用编程接口数据包。

另外,虽然 Google 当年为避免版权问题而重写了 Java API,却意外地使用了和 Oracle JDK 相同的一小段代码,这使得 Google 陷入不利的局面。

正是由于 Google 在 Android 平台上使用 Java 时并未和 Sun 公司达成授权协议,造成了巨大的隐患,尤其是在 Oracle 收购 Sun 公司之后。
1708518865870

Java技术体系平台

  • JavaSE(Java Platform, Standard Edition标准版):允许您在桌面和服务器上开发和部署Java应用程序。Java提供了丰富的用户界面、性能、多功能性、可移植性和当今应用程序所需的安全性。
  • JavaEE(Java Platform, Enterprise Edition企业版):是为开发企业环境下的应用程序提供的一套解决方案,主要针对于Web应用程序开发。
  • JavaME(Java Platform, Micro Edition 小型版):为互联网上的嵌入式和移动设备上运行的应用提供了一个健壮、灵活的环境:微控制器、传感器、网关、移动电话、个人数字助理(PDA)、电视机顶盒、打印机等等。JavaME包括灵活的用户界面、健壮的安全性、内置的网络协议,以及支持动态下载的网络和离线应用程序。基于JavaME的应用程序在许多设备上都是可移植的,但是利用了每个设备的本机功能。
    • Java Embedded(Im'bedId): 用于解锁物联网的智能设备的价值:
      通过远程市场更新和刷新功能延长产品生命周期和价值;
      利用Java的可伸缩性、健壮性、可移植性和全套功能,提高生产效率,降低成本,缩短上市时间;
      在边缘启用快速数据功能;
    • Java Card:使安全元件(如智能卡和其他防篡改安全芯片)能够承载采用Java技术的应用程序。Java card提供了一个安全的、可互操作的执行平台,它可以在一个资源受限的设备上存储和更新多个应用程序,同时保持最高的认证级别和与标准的兼容性。
    • Java TV:是一种基于JavaME的技术,它为开发在tv和机顶盒设备上运行的java应用程序提供了一个性能良好、安全且易于实现的解决方案。使用Java TV运行时,开发人员可以轻松创建应用程序,例如电子节目指南(EPG)、视频点播(VOD)客户端、游戏和教育应用程序、用于访问Internet数据的应用程序(例如天气、新闻播报器、社交网络)以及大多数蓝光光盘标题上的用户界面和奖金内容。

1.4 什么是软件开发

1.概述:
  软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程
  软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程
  软件一般是用某种程序设计语言来实现的。通常采用软件开发工具可以进行开发
  
2.我们将来主要从事软件开发中各个环节的哪个环节呢? 实现
      
3.我们将来主要用什么程序设计语言来开发呢? java

第二章.Java语言前言

1.Java的介绍

1.计算机编程语言:计算机能看懂的语言,我们能使用计算机编程语言对计算机下达指令-》 java
2.java之父:詹姆斯高斯林
3.java涉及到的领域:主要用于互联网领域,开发应用程序
  a.各行各业的操作系统,网站
  b.移动端:医疗设备上,超市打印小票机器,鸿蒙,安卓等
  c.电商网站
  d.物流管理
  e.银行使用的操作系统等
  f.桌面应用(idea)
  g.企业级开发(服务器程序)
  h.科学计算:机器人
  i.大数据库开发:hadoop
  j.游戏开发
4.目前安装的jdk版本:jdk17

2.字节

1.概述:计算机存储数据的最小存储单位(计量单位),用byte或者B表示
2.计量单位换算:
  8bit(二进制) = 1B
  1024B = 1KB
  1024KB = 1MB
  1024MB = 1GB
  1024GB = 1TB
  ...
image-20260109095210820

3.常用的dos命令

1.打开:
  win+R -> 输入cmd
image-20260109102214577 image-20260109102351545
作用命令
切换盘符盘符名:
查看当前位置下的文件或者文件夹dir
进入到指定文件夹cd 文件夹名
进入到多级文件夹cd 文件夹名\文件夹名
退到根目录cd\
退到上一级目录cd..
清屏cls
退出黑框口exit

小技巧:

1.进入到指定的文件夹对应的dos命令窗口:

​ a.选中路径->输入cmd

  1. 按上下箭头:可以切换之前打过的命令
  2. 输入文件或者文件夹名字的前一个或者多个字母,按tab键->补全剩下的名字

第三章.Java所需要的环境

1.jvm和跨平台

1.jvm(Java Virtual Machine):java虚拟机,是运行java的假想计算机,其实就是运行java的环境
2.跨平台:java代码可以在不同的操作系统上运行
3.jvm和跨平台的关系:
  想要实现跨平台,需要在不同的操作系统上安装不同版本的jvm
image-20260109104631597

2.JDK和JRE

1.JRE(Java Runtime Environment):java运行时环境,jre包含jvm以及java的核心类库
2.JDK(JavaDevelopment Kit):java开发工具包,包含了jre以及java的开发工具

jdk,jre,jvm的关系:

jdk包含jre,jre包含jvm

2.1.jdk安装

1.打开oracle官网:www.oracle.com
1752809580878
1.双击jdk安装包
2.选择安装路径:
  要求:安装路径上不能有中文->以后只要涉及到开发相关的,安装路径上都不要有中文
3.点下一步安装即可
4.测试:进入到bin目录中,打开对应的dos命令窗口      
      a.输入javac
      b.输入java
    
      只要不出现明确的错误提示,证明安装成功
image-20260109110118908

2.2.环境变量的配置

1.配置环境变量的目的:在任意位置都能使用javac和java命令
2.最重要的配置方式:
  JAVA_HOME
3.怎么配置:
  a.对着"此电脑",右键 -> 属性
  b.选择高级系统设置
  c.选择环境变量
image-20260109113910363

注意:安装jdk17的时候,会自动配一个环境变量javapath -> 我们自己配置JAVA_HOME的时候先将path中的javapath删除

第四章.Java第一个程序的开发

1.开发三步骤

1.编写:先将后缀名显示出来
  a.创建一个xxx.txt文档
  b.将.txt改成.java
2.编译:编译之后会生成一个xxx.class文件(字节码文件),jvm运行程序只认这个class文件
  javac java文件名.java
3.运行:运行的是class文件
  java class文件名 -> 运行的时候不要带文件后缀名
image-20260109115302323

2.编写HelloWorld

public class Demo01HelloWorld{
	public static void main(String[] args){
		System.out.println("helloworld");
	}
}
image-20260109115742414

小问题:

1.右键,新建没有文本文档或者文件夹的选项等不正常现象: 对着盘符右键 -> 安全 -> 改成"完全控制"

2.关机再开机 -> javac和java命令用不了了 -> 进入到环境变量中,啥都不要操作,直接点确定即可->新课程不会出现这个问题

3.注释

1.概述:对代码的解释说明
2.分类:
  a.单行注释
    //注释内容     
  b.多行注释
    /*
      注释内容
    */  
  c.文档注释:
    /**
      注释内容
    */
/*
  这是一个类
  类名是Demo01HelloWorld
*/
public class Demo01HelloWorld{
	//这是一个main方法
	public static void main(String[] args){
		System.out.println("helloworld");
	}
}
1.问题描述:如果想让一个人快速对我们所写的代码进行一个了解(这个类是干啥的,里面有啥功能,每个功能都是干啥的),怎么办呢?
2.问题解决:可以使用文档注释,对代码生成一个对应的文档(API文档)
3.怎么生成呢: javadoc -d 要生成的文件夹名字 -author -version 文件名.java    
/**
  这是一个类,是一个java的入门程序
  @author 涛哥
  @version v1.0
*/
public class Demo02HelloWorld{
	/**
	  这是main方法,是java程序的入口
	*/
	public static void main(String[] args){
		System.out.println("helloworld");
	}
}

涛哥提醒:

1.在类上,方法上写注释,建议用文档注释 -> 因为可以根据类上的以及方法上的注释内容生成对应的api文档

​ 其他地方单行注释,多行注释随意选择

4.第一个Java程序中每一句话的解释以及注意事项

/**
   1.public class Demo03HelloWorld 定义一个类
   2.public:公共访问权限,后面面向对象时讲解
   3.class:类 -> 类是java代码的基本单元,所有的代码都应该在类中写
   4.Demo03HelloWorld:类名,要求和java文件名保持一致
*/
public class Demo03HelloWorld{
	/**
	  这是main方法,是java程序的入口,没有main方法java程序运行不了
	*/
	public static void main(String[] args){
		//打印语句,输出语句,可以将我们想要的结果输出到控制台上
		System.out.println("helloworld");
	}
}
1.类名要和java文件名保持一致
2.不要将main写成mian
3.代码中的标点符号啥的都是英文的  
4.String和System中的首字母大写
5.代码写完用;代表这是单独一句代码
6.一个单词用空格增强代码的可读性    
image-20260109142258760 image-20260109142343162

6.关键字

1.概述:java提前定义好的,具有特殊含义的小写单词
2.怎么记:不用单独记,学到哪里记到哪里,在高级记事本中,关键字颜色特殊    
image-20260109142726569

7.编写HelloWorld时要注意的问题

7.1字符编码问题

1.我们在存数据,和读数据的过程中是有编码和解码的过程的
  a.存数据,写数据->编码的过程
  b.读数据,取数据->解码的过程
2.编码和解码都需要遵守编码规范,我们的编码规范有很多,我们最常见的有GBK,UTF-8
  如果编码和解码遵循的编码规范不一致,看到的结果就是乱码
    
3.注意:
  a.黑窗口默认编码:GBK
    如果我们写代码用的是UTF-8,那么在黑窗口中输出看到的就是乱码
      
  b.中文在GBK中:一个汉字占2个字节
    中文在UTF-8中:一个汉字占3个字节
image-20260109152707089

7.2源文件名(java文件名)与类名一致问题?

1.如果定义类的时候不带public,类名和java文件名可以不一致
2.如果定义类的时候带public,类名和java文件名必须一致
3.一个java文件中可以定义多个类,但是只能有一个类带public,而且带public的类名要和java文件名一致

9.println和print区别

1.相同点:
  都是输出语句
2.不同点:
  a.println:输出之后自带换行效果
  b.print:输出之后不会换行
public class Demo05HelloWorld{
	public static void main(String[] args){
		System.out.println("床前明月光");
		System.out.println("疑是地上霜");
		System.out.println("举头望明月");
		System.out.println("低头思故乡");
	}
}

notepad++小技巧:

1.复制当前行:ctrl+d

2.一次操作多行:按住alt不放,鼠标往下拉

第五章.idea

1.idea的介绍

1.概述:是java的开发工具,有java编写,依赖JAVA_HOME环境变量
2.作用:加速开发
3.特点:
  a.自动编译,自动运行,自动保存
  b.收费
  c.强大的快捷键
  d.强大的插件功能
  e.管理我们的代码,让代码提高可维护性
    ....

2.idea的目录结构

1752827838648

将来我们写一个大的项目,可以先创建一个Project,一个项目下会有很多的功能模块,我们就可以在这个Project下创建不同的Module,每一个模块下都会有不同类型的代码,就可以在Module下面创建不同的Package,用Package(包)对同一个模块下的不同代码进行分类管理

严格要求:使用idea

1.必须先创建project

2.在project下创建module

3.在module下的src下创建package

3.如何去创建一个Project

1729730225211 1729730234225

3.1再次创建一个新的Project

1708824581215

4.关闭Project

file-> close project
1729730247509

5.打开project

1708824786112

1729730267535

6.创建module

1708825358051

6.1.关闭module

1708825538041

6.2.导入已有的module

1729730282643

1708825732688

7.创建以及删除package

7.1创建

1708827010469

7.2 package的删除

右键->delete

7.3 package取名字规范

1.全部小写
2.包名都是公司域名倒着写
  www.atguigu.com -> com.atguigu   
1729730295818

8.创建类以及基本语句生成快捷键

1708827895942

1.生成main方法 -> 输入main -> 回车

2.生成输出语句 -> sout

3.想将变量直接放到输出语句中:变量名.sout 或者 变量名.soutv(带好看格式的输出)

1752829085569

9.基本设置

9.1设置字体

file->setiings
1729730306961

9.2设置提示的快捷键_可以过_不用看

file->setiings

1708829192988

9.3 设置注释字体

1708829373265

9.4.设置idea编码

image-20260109164320397

10.快捷键

快捷键功能
Alt+Enter导入包,自动修正代码(重中之重)
Ctrl+Y删除光标所在行
Ctrl+D复制光标所在行的内容,插入光标位置下面
Ctrl+Alt+L格式化代码(重点)
Ctrl+/单行注释(重点)
Ctrl+Shift+/选中代码注释,多行注释,再按取消注释(重点)
Alt+Shift+上下箭头移动当前代码行

先写等号右边的数据,自动生成等号左边的数据类型和变量名:

1729730330419

11.出现的问题

1.创建project时,要选择empty project
2.在运行代码时会出现"找不到对应的发行源"或者"不支持发行版本",证明本地jdk版本和idea中的project level不匹配
  所以要匹配版本
  file->project Structure->点击project->引入本地jdk->project level选择对应的版本
3.没有out路径的问题
  out路径是专门存放idea自动编译生成的.class文件的
  所以需要指明out路径
4.对着src,右键,选项中没有java class或者package
  此时证明src是灰色的,不可用的 -> 需要设置一下src ->将src目录颜色变成蓝色  
5.刚使用,jdk没有配置 -> 需要 配置jdk    
1729730341073

12.idea集成AI大模型(通义灵码)

1752830040225

通义灵码需要登录 -> 上阿里云,注册一个账号登录

继续阅读

全部归档
day17.集合
day17.集合

本文详细介绍了Java集合框架中的List、list及、set等和泛型相关知识。关键内容包括: 11集合简述: - ArrayList底层通过数组实现,初始容量动态扩展 - linkedList底层为双向链表,支持高效首尾插入删操作,但迭代时效率较低 -集合使用: - arrayList适合随机访问,但增删效率低下 - linkedlist迭代效率高但增删较慢 - hashmapset使得集合不遵循顺序 -linkedHashSet结合了两者优点 "st集合: - set不能保证元素顺序 - hashSet通过散列有效处理去重 -泛型应用: - 使用泛型可以统一类型,减少类型转换异常 -通配符?可以对不确定泛型类型 -上限? super多次类,下取限? super泛型类 -泛型类、方法、接口支持使用 本总结归纳了集合中各类数据结构的特点、应用及泛型使用方法,对于思考和应用Java集合框架&有着较好的指导和解释作用。

day16.集合
day16.集合

以下是根据提供的多段文档提炼的文章摘要: ### 摘要 本文详细介绍了Java多线和和、程序集合概念和和方法及其相关操作。文章首先回顾了了Java中的的基本概念,包括多线创建的方式——继承Thread或实现Runnable、以及Thread中的一些重要方法(如sleep、、start"和run∩∩。随后,文章介绍了多线同步机制,包括使用synchronized关键字和实现同步代码块以及使用同步方法的方式来控制多个线共同操作。 文章以较多篇幅介绍了函数流操作与以及相关函数接口和如Function、ConsumerPredicate#SupplierConsumerupplier。示例使用了Supupplier实现在最大值操作,展示了如何用Supplier流操作来过滤掉定定特定规则的材料集合。变量另外还展示了几种常用的函数流操作:如filter、filter、filter\和filterfilterfilter切片(long #和、limit值截止数量),以及流.aggregate方法来集合汇总生成新集合。 在**集合框架**部分,文章深入介绍了ArrayList与和LinkedList的基本概念与操作以及并发修改注意事项。文章同时讲解了了几种常见的数据结构**如数组、链表、以及树形结构**,并通过示例展示了这些数据结构的基本操作。 ### 操作条目如下: 11.多线述了了Jav中多合集分目的。 12简明介绍了集合的间操作以及几种重要的操作方法。 15.详细讲解了了�流操作以及相关接口的应用。 1.介绍合例操作优先。 55.以杰大量数据举例清晰解释了常见数据结构的与如上述这些操作。

评论