(day1)自学java基础

news2024/12/27 13:50:40

非原创,记录学习过程,为方便自己后期复习

目录

1.Java基础概念

2.运算符

 3.判断

 4.循环

5.循环高级

 6.数组

7.数组的内存图

8.方法


ctrl+alt+L 自动格式化代码

为什么要配置环境变量?

我们想在任意目录都可以打开指定软件,就可以把软件的路径配置到环境变量中。

打开环境变量:系统——》高级系统设置——》高级(环境变量)——》path(编辑)

 下载安装JDK:https://www.oracle.com

1.Java基础概念

1.helloworld小案例

javac编译后用java.exe运行

javac编译后会生成一个新文件

用java运行,不用带后缀

 

2.关键字、字面量、变量

3. 计算机的存储规则

 任意数据都是以二进制存储的

文本:数字(转二进制),字母(查询码表),汉字(查询码表)

图片:通过每一个像素点中的RGB三原色来存储

声音:对声音的波形图进行采样再存储

4.数据类型

数据类型相同,取值范围不同 。

如果要定义long类型的变量,在数值后面加一个L后缀(long m=99999999L)。

如果要定义float类型的变量,在数值后面加一个后F缀(float m=10.1F)。

 5.标识符

 标识符:就是给类、方法、变量等起的名字。

 

 6.键盘录入

Java中有个Scanner类,这个类可以接收从键盘输入的数字。

 练习:从键盘输入两个整数,并打印出两者之和。

7.IDEA

 

2.运算符

练习:从键盘输入三位数,获取其中百位、十位、个位。

  

1.隐式转换和强制转换

 2.自增自减运算符++,--

 

3.赋值运算符

 4.短路逻辑运算符

当左边表达式能确定最终结果,右边表达式就不会参与运行。

 

 5.三元运算符

 6.运算符优先级

小括号(),优先于所有。

7.原码反码补码

原码:十进制数据的二进制表现形式,最左边是符号位,0为正,1为负。

原码的弊端:利用原码计算时,如果是整数就没问题,但如果是负数,结果会出错,实际运算方向与正确运算方向相反。

 3.判断

如果对布尔类型的变量进行判断,不要用==,直接将变量写到小括号里。

 

 

 

练习:

 

 

 

 

 4.循环

 

100.fori (快速生成100以内的for循环)

练习:100范围内的偶数和(包括100)

 

 

 练习:

 

 先执行后判断

5.循环高级

 练习:

 

 

练习:猜数字小游戏,随机生成1~100的数字,使用程序实现猜出这个数字是多少?

 

注:括号内的范围是0~99,所以+1,就是1~100

import java.util.Random;
import java.util.Scanner;

public class GuessNumber {
    public static void main(String[] args) {
        Random r=new Random();
        int number= r.nextInt(100)+1;
        while (true) {
            System.out.println("请输入要猜的数字:33");
            Scanner sc=new Scanner(System.in);
            int guessunm= sc.nextInt();
            if (number > guessunm) {
                System.out.println("小了");
            } else if (number < guessunm) {
                System.out.println("大了");
            } else if (number == guessunm) {
                System.out.println("猜对了");
                break;
            }
        }
    }
}

 6.数组

 直接打印数组名,是不会出现数组中的值,而是数组的地址值。

1.获取数组元素:数组名[索引]

2.将数据存储到数组中:数组名[索引]=数据/变量  (之前的数据会被覆盖)

 数组的遍历:遍历是指取出数据的过程,而不只是简单的打印。

自动快速生成数组遍历:数组名.fori

练习:遍历数组并求和。定义一个数组,存储1,2,3,4,5,遍历得到每一个元素,并求所有元素之和。

public class ArrayText {
    public static void main(String[] args) {
        int[]array={1,2,3,4,5};
        int sum=0;
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
            sum=sum+array[i];
        }
        System.out.println(sum);
    }
}

练习:定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历得到每一个元素,统计里面有多少个能被3整除的数字。

public class ArrayText {
    public static void main(String[] args) {
        int[]array={1,2,3,4,5,6,7,8,9,10};
        int count=0;
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
            if(array[i]%3==0){
                count++;
            }
        }
        System.out.println("能被3整除的数字有"+count+"个");
    }
}

练习:变化数据。定义一个数组,存储1,2,3,4,5,6,7,8,9,10,遍历得到每一个元素,如果是奇数,则将当前数字扩大两倍,如果是偶数,就将数字变成二分之一。

public class ArrayText {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
        int count = 0;
        for (int i = 0; i < array.length; i++) {
            if (array[i] % 2 != 0) {
                array[i] = array[i] * 2;
            } else if (array[i] % 2 == 0) {
                array[i] = array[i] / 2;
            }
        }
        //遍历数组
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }
    }
}

注:一个循环只做一件事情

 

练习:求最值。一直输组元素为[33,5,22,44,55] ,找出最大值并打印。

public class MaxNumber {
    public static void main(String[] args) {
        int[] arr = {33,5,22,44,55};
        int max=arr[0];
//max的初始化值一定是数组的值
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]>max){
                max=arr[i];
            }
        }
        System.out.println(max);
    }
}

练习:生成10个1~100的随机数存入数组。1.求出所有数据和;2.求出平均值;3.统计有多少个数据小于平均值。

import java.util.Random;

public class ArrTest {
    public static void main(String[] args) {
        int[]arr=new int[10];
        int sum=0;
        int count=0;
        for (int i = 0; i < 10; i++) {
            Random r=new Random();
            int num=r.nextInt(100)+1;
            arr[i]=num;
        }
        for (int i = 0; i < arr.length; i++) {
            sum=sum+arr[i];
        }
        System.out.println("所有数据和为:"+sum);
        int ave=sum/10;
        System.out.println("所有数据的平均值:"+ave);
        for (int i = 0; i < arr.length; i++) {
            if(arr[i]<ave){
                count++;
            }
        }
        System.out.println("有"+count+"个数据比平均值小");


    }
}

练习:定义一个数组,存入1,2,3,4,5,按照要求调换索引对应元素。交换前1,2,3,4,5;交换后5,2,3,4,1。

public class ArrTest {
    public static void main(String[] args) {
        int[]arr={1,2,3,4,5};
        for (int i = 0; i < arr.length; i++) {
            int temp=arr[0];
            arr[0]=arr[4];
            arr[4]=temp;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

//1,2,3,4,5交换成5,4,3,2,1
public class ArrTest {
    public static void main(String[] args) {
        int[]arr={1,2,3,4,5};
        for (int i = 0,j= arr.length-1; i<j;i++,j--) {
            int temp=arr[i];
            arr[i]=arr[j];
            arr[j]=temp;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

练习:定义一个数组,存入1~5。要求打乱所有数据的顺序。

import java.util.Random;

public class ArrTest {
    public static void main(String[] args) {
        int[]arr={1,2,3,4,5};
        Random r=new Random();
        for (int i = 0; i < arr.length; i++) {
            int randomnum=r.nextInt(arr.length);
            int temp=arr[i];
            arr[i]=arr[randomnum];
            arr[randomnum]=temp;
        }
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
}

7.数组的内存图

栈:方法运行时使用的内存,比如main方法运行,进入方法栈中运行。

堆:存储对象或数组,new来创建的,都存储在堆内存。

 

8.方法

方法是程序中最小的执行单元。方法和方法是平级关系,不可嵌套。

1.最简单的方法定义, 调用方法:方法名();

2.带参数的方法,调用方法:method(数据,数据)

形参:方法定义中的参数

实参:方法调用中的参数

void就是没有返回值

3.带返回值的方法

return返回值给方法调用处 。return不带参数时,就是结束方法。

 

 方法的重载:

 在一个类中,定义了多个同名的方法,这些同名的方法具有同种功能。每个方法具有不同的参数类型或参数个数,这些同名方法,就构成了重载关系。

同一个类中,方法名相同,参数不同的方法。与返回值无关。(参数不同:个数,类型,顺序)

注:调用时可以结合数据类型强制转换。

练习:设计一个方法,求数组的最大值,并将最大值返回。

public class ArrTest {
    public static void main(String[] args) {
        int[]arr={2,4,6,3,13,15};
        int max=getmax(arr);
        System.out.println(max);
    }

    public static int getmax(int[]arr) {
        int max=arr[0];
        for (int i = 0; i < arr.length; i++) {
            if(max<arr[i]){
                max=arr[i];
            }
        }
        return max;
    }
}

练习:定义一个方法copyOfRange(int[]arr,int from,int to),将数组arr中从索引from(包含from)开始,到索引to(不包括to)结束的元素复制到新数组中,将新数组返回。

public class ArrTest {
    public static void main(String[] args) {
        int[]arr={2,4,6,3,13,15,10,9};
        int[]copy=copyOfRange(arr,3,7); //调用,用一个数组接收数据
        for (int i = 0; i < copy.length; i++) { //遍历copy数组
            System.out.print(copy[i]+" "); //用print就不会换行,println会换行
        }
    }

    public static int[] copyOfRange(int[]arr,int from,int to) {
        int[]arrnew=new int[to-from]; //定义数组
        int index=0; //伪造索引
        for (int i = from; i < to; i++) {
            arrnew[index]=arr[i]; //把原数组arr的从from到to的数据,赋值给arrnew
            index++;
        }
        return arrnew; //返回数组,数据类型要用int[]
    }
}

方法的基本内存原理:方法进栈,先进后出

什么是基本数据类型和引用数据类型?

 

 只要是new出来的,都是引用数据类型。在变量里存储的不是真实数据,而是地址值。

 

传递基本数据类型时,传递的是真实的数据,形参的改变,不改变实际参数的值

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

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

相关文章

DDR3 数据传输(四)

目录 引言 AXI从侧接口参数 AXI从侧接口信号 参考说明 引言 前文链接&#x

巧用网络指数

哈喽&#xff0c;好久不见&#xff01;今天我们来一起聊聊网络指数。网络指数平台是以网民在线使用行为数据为基础&#xff0c;借助关键词表达的重要信息检索渠道&#xff0c;一定程度上可以反映某一话题的关注度&#xff0c;也可以帮助我们抓住所谓的“热点”。这里&#xff0…

源码编译mindspore,利用云服务器与wsl

文章目录tmux的使用利用WSL2设置交换空间通过编译产生的output安装tmux的使用 参考&#xff1a;https://blog.csdn.net/weixin_43922901/article/details/89230499 参考&#xff1a;http://www.ruanyifeng.com/blog/2019/10/tmux.html tmux用于远程编译&#xff0c;开启一个会…

2023第一天,给你们展示一下用Python实现自动答题

前言 python实现自动答题&#xff1f; 别管&#xff0c;我这就给你们展示一下 &#xff08;效果图看不了 不知道为什么说我违gui&#xff09;&#x1f625; 话不多说&#xff0c;咱就直接看代码吧 代码 准备模块 import requests import parsel from selenium import webd…

create-vite 源码解析它来喽

create-vite的源码很简单&#xff0c;只有一个文件&#xff0c;代码总行数400左右&#xff0c;但是实际需要阅读的代码大约只有200行左右&#xff0c;废话不多说&#xff0c;直接开始吧。 代码结构 create-vite的代码结构非常简单&#xff0c;直接将index.ts拉到最底下&#…

项目学习--谷粒商城

1. 微服务搭建 本地安装虚拟机&#xff0c;静态IP划分和docker的使用微服务功能模块介绍以及业务模块划分与抽取 2. 前端搭建 3. 后端业务代码完善 云储存OSS的整合与使用JSR303校验以及自定义分组校验 4. Elasticsearch学习 Elasticsearch的基础使用Elasticsearch字段ma…

volatile 详解

1. 前言 在并发编程的过程中&#xff0c;volatile属性非常重要。首先我们要了解并发编程的三大特性&#xff1a;可见性, 有序性, 原子性而我们今天的了解的volatile 就牵扯到可见性, 有序性。同时我也会从个人了解的角度给大家分析下&#xff0c;如果有什么不对的地方也希望大家…

物联网与射频识别技术,课程实验(一)

目录 &#xff08;1&#xff09;communication.py &#xff08;2&#xff09;Reader.py &#xff08;3&#xff09;Tag.py 实验1—— EPC C1G2标准下的标签状态转换仿真 实验说明&#xff1a; 利用Python或Matlab模拟C1G2标签的状态转换模型&#xff1b; 程序应能显示标签…

深度学习:01 神经网络与激活函数

目前&#xff0c;最广泛使用的定义是Kohonen于1988年的描述&#xff1a; 神经网络是由具有适应性的简单单元组成的广泛并行互连的网络&#xff0c;它的组织能够模拟生物神经系统对真实世界物体所做出的交互反应。 目录 对神经网络的概述 神经网络的表示 激活函数 为什么激…

2022年总结:从初二学生到算法作者的蜕变之路

目录 一年的创作历程 我和 CSDN 在编程竞赛的合作 About CBC 技术社区的发展 夜跑奇遇 About 博客之星 新年致谢 元旦祝福 一年的创作历程 2022年&#xff0c;这一年对于我来说是十分重要的一年。在这一年里&#xff0c;我作为一名初二在校学生&#xff0c;在CSDN上发布…

【Linux 环境变量】环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数

1.问题&#xff1a;为什么自己写的程序需要加上./才能执行&#xff0c;但是指令可以直接使用&#xff0c;例&#xff1a;ls -al&#xff1f; 因为&#xff1a;不加"./"执行程序的时候会按环境变量PATH里面的各个路径找到就正常执行&#xff0c;找不到就报错&#xff…

SQL笔试题总结

文章目录前言一、列转行题目&#xff1a;将表Student转化为下面的形式展示先放答案逐步剖析二、row_number() over() 的使用题目&#xff1a;统计订单交易表&#xff08;orders&#xff09;每个商品交易金额最高的那一条数据先放答案逐步剖析三、逐行累加题目&#xff1a;还是订…

✿✿✿JavaScript --- jQuery框架二

目 录 1.高级事件 (1)浏览器一打开自动触发我们绑定的事件 (2) Trigger 传递数据 (3)自定义事件 (4)trigger 简写方案 (5)triggerHandler() (6)trigger和triggerHandler的区别 (7)on off one 2.动画 (1)显示 隐藏 动画 (2)队列动画 (3)下滑 上卷 (4)淡入淡出…

Nacos启动出现Error creating bean with name ‘memoryMonitor‘ 、‘externalDumpService‘

目录 &#x1f9e1;问题 &#x1f9e1;解决方法 &#x1f49f;这里是CS大白话专场&#xff0c;让枯燥的学习变得有趣&#xff01; &#x1f49f;没有对象不要怕&#xff0c;我们new一个出来&#xff0c;每天对ta说不尽情话&#xff01; &#x1f49f;好记性不如烂键盘&#x…

WSL2支持systemctl命令

文章目录背景相关知识systemdinit安装方法一&#xff1a;微软官方支持方法&#xff08;推荐&#xff09;方法二&#xff1a;安装daemonize实现参考背景 微软官方推出Windows Terminal第一时间&#xff0c;我就安装了这个终端软件。现在GitHub已经有86.8k星&#xff0c;且发布了…

一名普通Java程序员的2022的总结和2023的展望

前言今天是元旦节&#xff0c;也是2023年的第一天&#xff0c;首先祝各位亲朋好友们元旦快乐&#xff0c;在新的一年全家身体康健&#xff0c;诸事顺遂&#xff0c;阖家幸福&#xff0c;最重要的是身体健康&#xff0c;工作顺利&#xff0c;永无BUG永不加班&#xff01;&#x…

计算机组成原理【1】初识硬件

目录 考点1&#xff1a;硬件发展———————————————————————————— 一.计算机硬件的基本组成 1.早期冯诺依曼机 &#xff08;1&#xff09;冯.诺依曼计算机的特点: 2.现代计算机的结构 3.总结图 二.各个硬件的工作原理 1.寄存器MAR,MDR 2.主存…

EMNLP22 外部知识注入:Prompt-Learning for Short Text Classification

Prompt-Learning for Short Text Classification 任务形式&#xff1a;短文本分类问题&#xff0c;但是短文本的短长度、特征稀疏性和高模糊性给分类任务带来了巨大挑战。 1以往的工作&#xff0c;在注入外部信息上 大多数提示学习方法手动扩展标签词或仅考虑类别名称以纳入…

得分_UVa1585分子量_UVa1586数数字_UVa1225周期串_UVa455子序列_UVa10340

目录 P57_习题3-1_得分_UVa1585 P57_习题3-2_分子量_UVa1586 原子数范围0~99 书上给的代码 P57_习题3-3_数数字_UVa1225 P57_习题3-4_周期串_UVa455 P59_习题3-9_子序列_UVa10340 P57_习题3-1_得分_UVa1585 给出一个由O和X组成的串&#xff08;长度为1&#xff5e;80&a…

网络原理2 TCP协议

TCP协议 文章目录TCP协议TCP的特点TCP的基本特性确认应答机制超时重传机制丢包连接管理机制TCP建立连接---三次握手TCP断开连接---四次挥手滑动窗口机制丢包问题流量控制机制拥塞控制机制延迟应答机制捎带应答机制面向字节流问题TCP中的异常处理程序崩溃了正常关机突然断电关机…