java简介

2023年 10月 10日 43.0k 0

java

特点:
面向对象,跨平台

java的环境
运行环境【JRE】[java runtime environ]:
启动虚拟机运行java的代码
开发环境【JDK】[java development kit]:
给开发者提供了一些操作java程序的工具
java环境的关系:
JRE=JVM(java虚拟机)+java核心类库
JDK=JRE+开发工具

环境问题:
java虚拟机?JVM
是一台虚拟的计算机
用来管理解析执行我们写的java程序
---转化成操作系统识别的指令
---操作系统才根据指令让硬件运行
java程序跟操作系统没关系--跟java虚拟机有关系
跨平台的特性表现
java代码 windows版本jvm window
linux版本jvm linux
Mac 版本jvm Mac
需要在不同的操作系统上面安装支持的jdk或者jre

  JDK的目录结构
       bin目录---工具
       jre目录---运行环境
       lib目录---开发用到的类库【虚拟机库】
       src.zip和javaxf-src.zip--所有类库资源的源代码
  使用JDK的工具:
       虽然是可执行文件,不能直接打开使用,
       当我们点击打开的时候--弹出黑色窗体--告诉你它的使用方式--使用命令行
       windows的命令行环境--dos系统--【windows+r】

     输入工具--执行--【第一次安装jdk--直接运行开发工具的时候】
           输入java---报错【不是内部或者外部命令】
           原因:dos是windows操作系统的另外一种表现形式
                 jdk的工具属于外来软件应用---不属于我们的操作系统--操作系统无法识别
      解决方法:
             让操作系统认识jdk工具---告诉操作系统工具在哪里
             
          告诉操作系统路径方式:
                    地址dos中直接切换到对应目录下---造成一个问题只能在bin目录下使用
                    
                    通过windows暴露出来的属性【path】将路径添加到操作系统自动识别目录
                    
              如何配置操作系统的属性【环境变量】
                    配置方式有三种【分别应用不同的环境】
                        第一种:临时配置【不想在电脑上留下痕迹】
                              windows在dos提供了命令:
                                 path---查看操作系统默认识别的工具路径

                                 set path=新路径;%path%  添加路径
                            例如 set path=C:\Program Files\Java\jdk1.8.0_341\bin;%path%

                        第二种:暴力配置:直接配置到系统环境中
                               选中【我的电脑】【高级系统设置】等
                               
                               添加jdk的路径
                                  千万不要删除已存在的路径内容

                                  按下home键--将光标定位到最前面
                                   将你的jdk路径粘贴到这个位置,添加一个英文分好隔开
                                   一路【确定】--重新打开命令行窗体--测试环境【java工具命令】
                                 

                        第三种:标准配置:行业规范
                                解决【暴力配置】存在的问题
                                问题:我们想换版本的时候,暴力配置方式
                                      需要我们去path路径中找到原来的删除,添加新路径
                                解决:
                                     能不能将路径单独配置,然后引入path中,系统允许%自定义变量%
                                     

                        配置方式:【到千万不要删除前面都一样】
                                1)系统变量里面创建一个新的变量【点击创建按钮】
                                       变量名:java_home
                                       变量值:路径中可变部分
                                  例如:【C:\Program Files\Java\jdk1.8.0_341】\bin

                                 2) 将JAVA_HOME 变量引入到path路径下
                                     变量名:path
                                     变量值:%JAVA_HOME%\bin;path原来的路径

                        注意事项:
                                 1path 中新配置的环境变量一定放在最前面
                                 2.千万别删除
                                 3,JDK的安装类似于解压---所有我们可以第一次安装之后将安装目录放在u盘中
                                    到电脑上直接


                        开发工具和开发环境:
                                 在开发环境满足的情况下,就要进行程序开发---学习开发工具
                                 jdk提供的开发工具:
                          
                                   javac:java程序的编译工具
                                   java:java程序字节码运行工具
                                   javadoc:java程序生成帮助文档的工具
                                   jar:java项目打包成jar包发布以后的启动执行工具
                         基本用法注意:
                                            直接输入命令 ---显示他的帮助信息
                                             命令- help 查看帮助信息
                                             命令-version 查看JDK的版本

                         编写代码的工具:
                                   文本工具----【记事本】

                                   可视化智能编程(IDE)【不建议javase基础使用】可以一键运行程序,自动监测排版程序
                                            eclipse【解压和安装--】---myeclipse【安装版本】

                                            vscode【安装版本】
                                               
                                            idea---收费
                                            
                                            netbeas--oracle提供

                         使用记事本编写代码如何执行--使用dos命令---掌握一些常用的dos命令
                                 1)help:查看dos中支持的命令列表
                                 2)dir:查看当前目录下所有的内容【文件和文件夹】
                                 3)cd系列命令:用于切换目录
                                    cd+文件名: 进入当前目录下对应的文件夹
                                    cd+文件夹绝对路径:进入到对应路径的目录
                                    cd+文件夹1/文件夹2:进入多级目录
                                    cd..:返回
                                    cd/:返回当前磁盘的根目录
                                4)mkdir/md 文件夹名字:创建文件夹
                                5)盘符:---切换磁盘
                                6)清屏:cls
                                7)删除文件夹:rd 文件夹名
                                8)del 文件名:删除文件
                                   del+文件夹名:删除文件夹下所有的文件
                                9)exit:关闭当前窗体
                                10)使用记事本创建和打开文件
                                     notepad + 文件名.扩展名  
                                          如果文件存在就打开,不存在就创建一个新的。


                                特殊命令:
                                        ipconfig  查看网络情况
                                        ping:攻击命令--黑客入门命令
                                        ping ip/域名 字节大小
                                        netstat -nlp  查看端口占用情况
                              
               编写Java的第一个程序---打印helloword
                                1)java文件的要求
                                  java程序的文件拓展名.java
                                2)java文件的命名要求和程序类名一致,并且构成文件名的每一个
                                   单词首字母大写
                                3)创建java文件 HelloWord.java
                                4)编写java代码
                                    java代码基础语法结构--类
                                    语法:【固定写法】
                                      
                                       public class 类名{   

                                

                                                      
                                                  }
                      5)程序要想执行,需要有一个起点----入口函数--主函数
                                       语法:【固定写法】
                                     public static void main(string[]args){

                                               

                                            执行业务代码
                                          }
                      6)业务代码---输出语句--打印信息
                             System.out.println(内容);
                     
                      7)编译java程序
                         原因:我们所写的java代码 我们认识但是java虚拟机不认识【只认识 0和1】
                         所以我们需要使用工具将我们java文件编程【0和1组成的字节码文件】
                    命令语法格式: javac java文件名.java
                     此命令会令我们的.java文件翻译成class文件
                     .class文件就是我们的字节码文件
                     8)执行字节码文件
                           使用命令:java 字节码文件名/类名
                           执行程序--得到结果
                  五.java第一个程序分析,编码规范,出现问题
                       1.分析java程序编写过程
                         1)执行过程
                          A 创建一个java文件
                          【扩展名.java】【文件名是英文并且构成名字的每一行单词首字母大写】
                          B 编写程序
                            程序规范
                                最外层:编写一个类
                                    public class 文件名{
                                             
                                           业务代码
                                           }
                                    代码运行入口:主函数
                                  public static void main (String[]args){
                                                 
                                      
                                    }
                                输出语句:
                                 System.out.println();
                          注意:
                                  以上代码为java固定格式
                                  所有的java代码都在英文环境下编写
                                  根据我们学习的java语法--逐渐丰富业务代码
                         C:编写源程序代码jvm不能加载运行,
                             所以需要使用javac命令,将源代码【.java】编译成【.class】
                             语法:javac 文件名.java
                         D:得到的字节码文件【.class】 能够被jvm识别
                            ---使用java命令加载字节码文件直接运行程序
                           语法:java 类名/字节码文件名
                         E:程序运行输出结果
          
                         总结:
                               java源文件【HelloWorld.java】--【javac命令变编译】
                           ---java字节码文件【HelloWorld.class】---【java命令执行】--结果

                       2.编码习惯/编码规范
                        A:java代码严格区分大写小
                        B:固定代码不能乱改--照抄
                        C:所有的java代码都是在英文环境
                        D:各种括号需要成对出现---
                        E:层级关系分明,内部代码相对外部代码前面要有空格缩进【2-4空格】
                        F:在我没有让使用图形化工具之前--统一用notepad


                       3.问题:
                         A:编码问题--乱码问题
                            
                            乱码的原因:
                               我们认识的【小王】------联系两者中介(字节)------电脑【0,1】
                                        
                              欧洲规范【iso8859-1】【一个中文---6字节】

                              定义标准【UTF-8】【一个中文---3个字节】

                              中文规范【GBK/GB312】【一个中文---2字节】
                       



                      例如:
                          记事本写东西存储---【小王】---【UTF-8】---字节[AAABBB]
                          dos加载运行的时候---【GBK】---[AA][AB][BB]
 

                      解决办法:
                              之前统一编码--UTF-8
                              假如已经编码不统一了:
                                 首先使用源编码工具正常打开
                                 再次选中所有的内容--复制 
                                 到新编码工具内--粘贴--保存
                       B:报错问题
                              javac 去编译代码,如果没有报错--代码合理 没有语法错误
                                                如果报错,会指出错误位置


                       C:JAVA编译和运行过程错误探索

                           字节码文件名就是类名
                           类名必须和文件名一致
                           可以不一致【定义类的时候前面的public去掉】
                              --当我们一个文件夹下面有多个java文件,我们全部编译了--无法知道
                                哪个【.class】所对应的【.java文件】

                     java语法知识【三个部分】
                          1基础语法【语言共性 八大语言基础】
                           关键字 标识符 注释 变量与常量 运算符 流程语句 数组 函数                  
                          

                          2.核心语法---面向对象思想--程序编写的规则

                            面向对象的概念
                            类的构成
                            对象创建使用
                            关键字 static final this super 
                            权限修饰符
                            包的定义--类的分类
                            类与类之间 关系
                            面向对象三大特征
                              抽象
                              接口--架构概念--面向接口编程
                         3. 案件AV高级技术 常用APL
                             常用类
                             异常机制
                             集合框架
                             IO流
                             多线程
                             网络通行
                             图形界面
                             反射和注释



            

                java的基础语法【语言共性】
                           

                            1.关键字
                              
                              概念:语言开发者提供的具有特殊含义的单词或者字母

                                   关键字所有的字母都是小写
                              
                              使用:我们只要遵循它的要求语法使用就行,不要有非分之想

                            2.标识符
                                含义: 开发者自定义的已名称所用的单词或者字母
                                构成:26个英文字母大小写,数字,_和$
                                
                                约束:
                                     不能是关键字
                                     不能以数字开头
                                     严格控制大小写
                                     
                      使用的位置
                               
                               类名:构成类名的每一个首字母大写
                               变量名:构成变量名的每一个单词都小写
                               函数/方法名:第一个单词全部小写其他单词首字母大写
                               常量名:全部大写


                      java基础语法知识
                             1.关键字
                             2.标识符
                             3.注释:
                                    1)方便识别和梳理
                                    


                                    2)注释的概念
                                            注释说明代码块或者代码语句
                        
                                    3)有哪些注释
                                          //注释内容 单行注释
                                          /*注释内容*/ 多行注释
                                          /**注释内容*/ 文档注释



                                    4)//单行注释
                                          作用:用于解释说明每一行代码语句
                                                

                                          使用要求:每一行业务代码都需要加单行注释
                   
                                    5)/* 注释内容*/  调试代码
 
                                    6)/**文档注释*/ 文档注释【java特有】
                                          帮助开发者将代码业务生产帮助文档提供被人使用
                                          文档注释的位置:
                                            java文件开头
                                            类的定义上面
                                            接口定义上面
                                            方法/函数上面
                                            常量上面

       				文档注释的内容
                                       /**
                                         * 需求:当前类或者接口或者方法干什么
                                         * 分析:细化需求业务
                                         * @author 程序编写人的姓名
                                         * @date 编写的时间
                                         * @version v.1.0.1
                                         * 问题汇总:所有遇到问题以及解决方案写出来

                                    文档注释的功能:
                                            替代多行注释
                                            将此类生成帮助文档--给别人使用
                                               命令:javadoc java文件名.java【-d 生成内容存放置】

       7)注释的特点
      
         A:注释说明代码功能
         B:良好的注释习惯有助于养成编程的感觉【代码是用来翻译我的想法】
     C:注释不会参与编译--jvm最后运行的就是纯代码
         D:文档注释或者生成类的帮助文档---高级技术中提供很专业的API


        4.变量与常量   【数据的暂存和复用】
                  
               1)为什么需要
                  
                 希望同一个数据能在不同的地方重复使用--程序中多个地方公用一个数据
	     
                 需要一个地方暂时存放数据---有需要的时候就去获取---【内存】+【硬盘】

	     【内存存储】---临时性---
	     【硬盘存储】---持久性---

 		      我们此时的数据共享是临时的--需要在内存中划分空间--

      	      ---java语言中--称数据存储空间
                   
                   2)数据存储分类
        
                      固定值存储--常量
                      可变数据存储--变量
         
                   3)变量的概念:

                       内存中的一块固定临时存储空间
		   想在程序中使用空间--需要进行标识---

                        存储数据的类型-----变量类型---用于指定存储空间的大小和存储数据类型

                        存储数据空间的命名----变量名---用于获取数据
         
                   4)定义变量语法

                    A:变量的声明

                     语法:  变量类型  变量名

                     例如:int a;//  声明了一个整数变量

                   B:变量赋值

                     语法:变量名=新值;

                   C:变量声明+初始化赋值

                     语法:变量类型  变量名=初始值;

                     例如 int b=10;
                     
                   5)变量类型的定义

                      基本类型【八个】

                      整数:
                            byte short
                           
                            int  long

                      小数:
                           float double
         
                      布尔:
                           boolean
               
                      字符:
                           char

                      引用数据类型【java核心业务类型】
                         
                            类

                      接口【特殊类】

                      数组--


              6)定义变量 演示变量定义和使用

                 定义整数变量--重复使用
    
              7)变量定义及其使用的原理

              8)变量类型为什么有八种

                  原因:Java的数据类型不仅仅指定了存储数据的类型,还限定了存储数据的大小
  
                 整数:byte 1字节  127---  -128  2
		   short 2字节
                       int 4字节
                       long 8字节
      
                 小数:
                     float 4字节
                     double 8字节
                     boolean 1字节固定值true或false

              9)探索java变量类型中特点
                
                 所有数据类型是java中定义,不受操作系统的影响
                 数据类型的使用注意事项
               
                 问题1:
                       byte a=24
                       byte a1=a+1;//会出现【不兼容的类型;从int转换到byte可能会损失】

                       问题出现的原因:
                                A:运算的数据平等性【重点】
                                B:默认类型 所有整数字面量【参与变量运算】的时候默认为int类型
                                C:数据类型的转换
                                  
                                  一种:强制转换/显示转化  显示标出

                                         变量=(类型)运算表达式
                  
                                  一种:自动转换/隐式转换/类型提升  默认的 涉及到

                         byte-->short-->int-->long-->float-->double

                            char             

               10)默认类型:
                       
                      当参与变量运算的时候对应字面量/常量数据类型--默认为默认类型

                        整数:默认类型 int
                        小数:默认类型double

               11)类型转换 【很重要】
                    A:自动类型转化
                       按照图示从小到大

                     备注:char类型的变量值转换为int以及以上的类型运算的时候,char会以其ASCII码值

                    B:强制类型转化

                     byte   >移动的位数 右移动,会把数据转化成二进制按照移动位置右边删除对应位
                         左边用0补齐字节长度

                        【重点】 ^特殊用法 加密解密传输数据 两个变量高效交换数据

                                 A:加密和解密
                                   原来数据
                                   65 67 69 72 75
                                
                                   加密完的数据
                                   77 72 72 68 74

                                   
                  6)三元运算符

                  语法:条件表达式 值1:值2
                    
                        当条件表达表达式满足 返回值1结果
                        当条件表达表达式不满足 返回2结果
                        有点类似if-else语法
                        此运算符是有返回结果的;


                  7)流程控制语句【与javascri一模一样】

                       条件语句:if
                     A:语法
                        if(条件表达式){

                                 满足条件执行语句                                       

                              }

                     B:语句
                 
                        if(条件表达式){


                                }else{
                                 }
                      
                     C:语句
                        
                        if(条件表达式){


                                }else if{

                                 }

                                 ......

                                 else{
      
                                   }

                   D:语句
                  
                       if(条件表达式){

                             执行语句1;
                         if(条件语句2){

                             执行语句2

                               }                                         

                             }
                含义:
                   
                   条件表达式1的运算结果为true的时候执行【执行语句1】
               
                               并且执行条件表达式2运算

                   【执行语句2】执行的要求是:
     
                    条件表达式1的运算结果是true并且 条件表达式2的运算结果也是true;

                 2)循环语句

                   A:语法1 for
    
                       for(初始条件计数器;判断条件表达式;计数器改变){

                  
                                         执行循环语句

                                        }
                       
                   B:    while




                   C:循环do-while



                三种循环之间的关系和特点
 
                   for循环是对while循环的简化 所以正常循环选择for

                   while适合做无限循环或者特殊用法【例如数据库结果集迭代】


                    for(;;){}或者for(;true;){}--无限循环

                    while(true){}.....无限循环--更加简便
                            
                    do while无论条件是否满足至少执行一次


            C:选择语句 switch
 
              语法:

                  switch(参数值){
                    
                        case值1:

                      参数值等于1执行语句;

                        break;

                        case值2:
                  
                      参数值等于值2执行语句

                      break;


                      default:
                          以上都没有满足条件的执行语句

                    

                        }

                注意:
              
                    A:没有break的时候,当有case条件满足,下面的语句都执行

                    B:【参数值支持】的类型 byte short int char 枚举 string【JDK1.7】


                  4)两个关键字
          
                     break:结束距离他最近的外层循环
 
                     continue:结束本次循环,继续下一次循环

相关文章

服务器端口转发,带你了解服务器端口转发
服务器开放端口,服务器开放端口的步骤
产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
如何使用 WinGet 下载 Microsoft Store 应用
百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

发布评论