Java学习

Java的三大版本

Write Once、Run Anywhere
JavaSE:标准版(桌面程序,控制台开发…)
JavaME:嵌入式开发(手机,小家电…)
JavaEE: E企业级开发(web端,服务器开发…)

JDK : Java Development Kit,Java开发者工具,在JRE之上扩充了一些开发工具

JRE: Java Runtime Environment,包含Java虚拟机,函数,一些库,就是一些运行时环境,只要安装了JRE就可以运行Java环境

JVM : JAVA Virtual Machine,Java虚拟机,可以当作一些规范,可以使用软件实现或者硬件来实现,就是在操作系统上模拟CPU来运行Java程序。Java的跨平台核心就是使用了JVM,屏蔽了底层系统的一些差别,真正实现了一寸编译到处运行

在这里插入图片描述

JDK组成

在这里插入图片描述

HelloWorld。java程序写出来之后会在jdk里面找寻javac这样一个工具来对他进行编译,编译后会产生HelloWorld.class这样一个文件,第二步就是去jdk里面找到java这样一个工具把HelloWorld.class这样一个程序送到jvm虚拟机里面运行,程序在虚拟机里面运行还需要调用java自己写好的程序,java自己的程序放在核心类库里面

卸载JDK

1.删除java的安装目录,jdk文件
在这里插入图片描述
找到JAVA_HOME对应的地方将旧版本的jdk删除
2.删除JAVA_HOME对应的环境变量
在这里插入图片描述
3.删除Path对应的和jdk有关系的环境变量
在这里插入图片描述
4.java -version cmd窗口查询java环境是否删除干净

安装JDK8

1.百度搜索JDK8,找到下载地址
2.同意协议
3.下载电脑对应的版本
4.双击安装DK
5.记住安装的路径
6.配置环境变量
1.我的电脑–>右键–>属性
2.环境变量–>JAVA_HOME
在这里插入图片描述

3.配置path变量

在这里插入图片描述

4.测试JDK是否安装成功
1.打开cmd
2. java -version
在这里插入图片描述

5.安装的jdk的目录结构
在这里插入图片描述
bin:存放的是一些可执行程序
include:存放一些头文件。java的jdk是由c/c++写的,启动的时候需要引用一些头文件
jre:下面是java的一些运行环境,如果只跑java的话,只有jre就够了
lib:存放了java的一些类库

6.编译运行java代码

public class Hello{
	public static void main(String [] args)
		{
			System.out.print("Hello World!");
		}
}

在这里插入图片描述
可能会遇到的问题:
1.javac不是内部命令:表明环境变量没有配置好
2.javac Hello.java 没有运行出.class文件
在这里插入图片描述
表明.java文件大小写有问题。java是大小写敏感的
3.文件名和类名必须保持一致
在这里插入图片描述
在这里插入图片描述

Java跨平台机制

在这里插入图片描述
在这里插入图片描述

Java程序运行机制

在这里插入图片描述
java编码的快捷命令
psvm
sout

在这里插入图片描述

IDEA使用

IDEA常用快捷键

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Java关键字

在这里插入图片描述
在这里插入图片描述

Java数据类型

在这里插入图片描述

在这里插入图片描述
强类型语言安全性高,但是速度就会变慢
像VB,JS都是弱类型语言

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

变量

在这里插入图片描述
变量分类:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

运算符

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

包机制

在这里插入图片描述

Scanner对象

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

switch选择结构

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

break 和 continue

在这里插入图片描述

在这里插入图片描述

Java方法

在这里插入图片描述
在这里插入图片描述

方法调用

在这里插入图片描述

方法重载

在这里插入图片描述

命令行传参

在这里插入图片描述
在这里插入图片描述
使用命令行执行代码,需要在源程序目录下执行,因为Demo7里面导入了package xsy.Scanner这个包

在这里插入图片描述

可变参数

在这里插入图片描述

public class Demo8 {
    public static void main(String[] args) {
        Demo8 d8=new Demo8();
        d8.test(1);
    }

    public void test(int... i)
    {
        System.out.println(i[0]);
    }
}
package xsy.Scanner;

public class Demo8 {
    public static void main(String[] args) {
        //Demo8 d8=new Demo8();
       // d8.test(1);
        printMax(34,2,4,1,89,0);
        printMax(1,2,3);
    }

    public void test(int... i)
    {
        System.out.println(i[0]);
    }

    public static void printMax( double... numbers){
        if (numbers.length==0) {
        System.out.println("No argument passed" );
        return;
        }
        double result = numbers[0];
        //排序!
        for (int i = 1; i <numbers.length; i++){
            if ( numbers[i] >result) {
                result = numbers[i];
            }
        }
        System. out.println( "The max value is " + result);
    }

}

在这里插入图片描述

递归

在这里插入图片描述

数组

在这里插入图片描述
在这里插入图片描述

public class Demo01 {
    public static void main(String[] args) {
        int[] nums;//1.定义一个数组
        int arr[];

        nums=new int[10];//创建一个数组
        //nums数组里面可以存放10个int类型的数字

        //3,给数组元素赋值
        for(int i=0;i<nums.length;i++)
        {
            nums[0]=i+1;
            System.out.println("nums[" + (i) + "]" + "=" +(i+1));
        }

    }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

多维数组

在这里插入图片描述

在这里插入图片描述

package array;

public class Demo01 {
    public static void main(String[] args) {
//        int[] nums;//1.定义一个数组
//        int arr[];
//
//        nums=new int[10];//创建一个数组
//        //nums数组里面可以存放10个int类型的数字
//
//        //3,给数组元素赋值
//        for(int i=0;i<nums.length;i++)
//        {
//            nums[0]=i+1;
//            System.out.println("nums[" + (i) + "]" + "=" +(i+1));
//        }

        int [][]array={{1,2},{2,3},{3,4},{4,5}};//[4][2]
        /*
        1,2
        2,3
        3,4
        4,5
        */
        printArray(array[0]);
    }
   
    public static void printArray(int[]arr)
    {
        for(int i=0;i<arr.length;i++)
        {
            System.out.print(arr[i]+" ");
        }
    }
}

Arrays类

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

算法进阶指南图论 通信线路

通信线路 思路&#xff1a;我们考虑需要升级的那条电缆的花费&#xff0c;若其花费为 w &#xff0c;那么从 1 到 n 的路径上&#xff0c;至多存在 k 条路径的价值大于 w &#xff0c;这具有一定的单调性&#xff0c;当花费 w 越大&#xff0c;我们路径上价值大于 w 的花费会越…

Unity 使用INI文件存储数据或配置参数预设

法1&#xff1a;调用外部Capi库 具体使用&#xff1a; public class Ini{//读取INI文件需要调用C的APP[System.Runtime.InteropServices.DllImport("kernel32")]private static extern long WritePrivateProfileString(string section, string key, string val, st…

STM32--系统滴答SysTick

一、SysTick是什么&#xff1f; Systick定时器是一个24bit的倒计时&#xff08;向下计数&#xff09;定时器&#xff0c;功能就是实现简单的延时。 SysTick 是一种系统定时器&#xff0c;通常在嵌入式系统中使用。它是 ARM Cortex-M 处理器的一个特殊定时器&#xff0c;用于提…

7.运算符

目录 一.算数运算符 1、算术运算符 2、比较运算符 1、等号()用来判断数字、字符串和表达式是否相等。 2、安全等于运算符(<>) 3、不等于运算符(<>或者!) 4、小于或等于运算符(<) 5、小于运算符(<) 6、IS NULL(IS NULL)&#xff0c;IS NOT NULL 运算…

[MySQL] MySQL表的基础操作

文章目录 一、创建表 1、1 SQL语法 1、2 实例演示 二、查询表 三、修改表 3、1 修改表名字 3、2 新增列&#xff08;字段&#xff09; 3、3 修改列类型 3、4 修改列名 3、5 删除表 四、总结 &#x1f64b;‍♂️ 作者&#xff1a;Ggggggtm &#x1f64b;‍♂️ &#x1f440; 专…

【MySQL日志与备份篇】数据库备份与恢复

数据库备份与恢复 文章目录 数据库备份与恢复1. 物理备份与逻辑备份2. mysqldump实现逻辑备份2.1 备份一个数据库2.2 备份全部数据库2.3 备份部分数据库2.4 备份部分表2.5 备份单表的部分数据2.6 排除某些表的备份2.7 只备份结构或只备份数据2.8 备份中包含存储过程、函数、事件…

微信聊天,收到二维码图片就自动帮你提取出来的方法

10-3 如果你是二维码收集的重度用户&#xff0c;那我非常推荐你好好阅读本文&#xff0c;也许可以帮你解决你的问题&#xff0c;比如做网推的人&#xff0c;需要常年混迹在各种微信群&#xff0c;那如何在各个微信群中收集到群友分享出来的二维码&#xff0c;并且要立即保存出…

吃透 Spring 系列—MVC部分

目录 ◆ SpringMVC简介 - SpringMVC概述 - SpringMVC快速入门 - Controller中访问容器中的Bean - SpringMVC关键组件浅析 ◆ SpringMVC的请求处理 - 请求映射路径的配置 - 请求数据的接收 - Javaweb常用对象获取 - 请求静态资源 - 注解驱动 标签 ◆ SpringMV…

推荐系统笔记--Swing模型的原理

1--Swing模型的引入 在 Item CF 召回中&#xff0c;物品的相似度是基于其受众的交集来衡量的&#xff0c;但当受众的交集局限在一个小圈子时&#xff0c;就会误将两个不相似的物品定义为相似&#xff1b; Swing 模型引入用户的重合度来判断两个用户是否属于一个小圈子&#xff…

C++基础(2)——类和对象

目录 1. 类的引入&#xff1a; 2. 类的定义&#xff1a; 2.1类的定义以及基本结构&#xff1a; 2.2 类的访问限定符&#xff1a; 3. 类的声明与定义的分离&#xff1a; 4. 类的实例化&#xff1a; 5. 类的大小计算&#xff1a; 1. 类的引入&#xff1a; 在数据结构系列的…

使用openvc进行人脸检测:Haar级联分类器

1 人脸检测介绍 1.1 什么是人脸检测 人脸检测的目标是确定图像或视频中是否存在人脸。如果存在多个面&#xff0c;则每个面都被一个边界框包围&#xff0c;因此我们知道这些面的位置 人脸检测算法的主要目标是准确有效地确定图像或视频中人脸的存在和位置。这些算法分析数据…

[Android]修改应用包名、名称、版本号、Icon以及环境判断和打包

1.修改包名 在Android Studio中更改项目的包名涉及几个步骤&#xff1a; 打开项目结构: 在Android Studio中&#xff0c;确保您处于Android视图模式&#xff08;在左侧面板顶部有一个下拉菜单可以选择&#xff09;。 重命名包名: 在项目视图中&#xff0c;找到您的包名&…

结构型设计模式07-享元模式

结构型设计模式07-享元模式 1、享元模式介绍 享元模式是一种结构型设计模式&#xff0c;旨在通过共享对象来减少内存使用和提高性能。它主要用于处理大量细粒度对象的情况&#xff0c;其中许多对象具有相似的属性和行为。 在享元模式中&#xff0c;对象分为两种类型&#xf…

互联网大厂招兵买马开发鸿蒙应用,移动开发的春天又来了?

日前&#xff0c;美团拟开发鸿蒙系统APP的多个相关岗位正招聘开发人员引发业内关注。事实上&#xff0c;鸿蒙开发者已经成为京东、WPS、凤凰新闻、微博等互联网大厂争相招聘的人才&#xff0c;且招聘岗位众多。也就是说&#xff0c;这些公司正在加快鸿蒙化开发&#xff0c;为鸿…

计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战

✨作者主页&#xff1a;IT研究室✨ 个人简介&#xff1a;曾从事计算机专业培训教学&#xff0c;擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

录制GIF图,动态图

软件下载链接&#xff1a; https://www.cockos.com/licecap/ 参考链接&#xff1a; https://chat.xutongbao.top/

Linux学习第40天:Linux SPI 驱动实验(一):乾坤大挪移

Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 主从工作方式完成数据交换&#xff0c;形象的说就是武侠中的乾坤大挪移。 本章实验的最终目的就是驱动 I.MX6UALPHA 开发板上的 ICM-20608 这个 SPI 接口的六轴传…

2023.11.13 hive数据仓库之分区表与分桶表操作,与复杂类型的运用

目录 0.hadoop hive的文档 1.一级分区表 2.一级分区表练习2 3.创建多级分区表 4.分区表操作 5.分桶表 6. 分桶表进行排序 7.分桶的原理 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型: 又叫结构类型,可以存储不同类型单数据的集合…

【函数讲解】pygmo中的函数 fast_non_dominated_sorting() + 利用支配关系,学习一个SVM分类器,将解分为两类

这个函数是用来执行非支配排序的&#xff0c;可以分层构建Pareto&#xff0c;并返回每一层的解以及每个解支配其他解的索引、解被其他解支配的次数、解所在的非支配层级。这个函数对这些解进行非支配排序&#xff0c;并返回四个数组&#xff1a;ndf, dl, dc, 和 ndr。 ndf (Non…

CentOS7、CentOS8 如何修改ip信息(修改网络信息)(无图形界面)(亲测可用)

文章目录 CentOS 7方法一&#xff1a;使用 nmcli 命令方法二&#xff1a;编辑配置文件&#xff08;我的CentOS7是使用这种方法&#xff0c;亲测可用&#xff09; CentOS 8方法一&#xff1a;使用 nmcli 命令方法二&#xff1a;编辑配置文件 在 CentOS 系统中&#xff0c;如果你…