Java_基础阶段笔记总结汇总

一、Java简介

1、Java语言平台性介绍

2、JDK_JRE_JVM的组成和作用

JVM: Java虚拟机,是专门用来运行Java程序的,但是不能单独安装
JRE: Java运行环境,包含JVM(Java虚拟机,是专门用来运行Java程序的)和核心类库
JDK: Java开发工具包,包含JRE和开发工具

 3、程序开发的步骤

1.HelloWorld

public class HelloWorld {public static void main(String[] args){System.out.println("HelloWorld");}}

 二、注释

//这里是定义一个类,类的名字叫做Demo01ZhuShi,
//而且文件名必须和类的名字保持一模一样,public class 目前是固定写法,目前记住,后面讲解
public class Demo01ZhuShi {/*这里是定义main方法,public static void main(String[] args)是固定写法main方法是程序的入口*/public static void main(String[] args){/*这是一个输出语句,用来向控制台输出显示内容的,()中的""里面的内容会被输出显示到控制台上*/System.out.println("zhushi....");}
}

三、变量

 

public class Demo03BianLiangNotice {public static void main(String[] args){//定义int变量a,并初始化int a = 100;		System.out.println(a);//错误: 不能在同一个区域({}),定义同名的变量//int a = 200;//System.out.println(a);//定义int变量b,未赋值int b;//System.out.println(b);//错误: b中没有值,不能使用b = 200;//把数字200赋值给变量bSystem.out.println(b);//long c = 6000000000;//错误: 6000000000(60亿)默认是int类型,但是大小已经远远超过int的取值范围(正负21亿)了//System.out.println(c);long d = 6000000000L;//6000000000L: 是long类型的数据System.out.println(d);//错误: 大萝卜不能直接放入小坑中//float e = 6.6;//错误: 6.6默认是double类型,占8个字节,不能赋值给4个字节的float变量e//System.out.println(e);float f = 6.6F;//6.6F: 是float类型的数据System.out.println(f);}
}

四、Scanner类

在获取三个和尚中的最高身高案例中,身高数据如果由键盘录入,该怎样实现呢?

import java.util.Scanner;public class ScannerTest {public static void main(String[] args) {//身高未知,采用键盘录入实现。首先导包,然后创建对象。Scanner sc = new Scanner(System.in);//键盘录入三个身高分别赋值给三个变量。System.out.println("请输入第一个和尚的身高:");int h1 = sc.nextInt();System.out.println("请输入第二个和尚的身高:");int h2 = sc.nextInt();System.out.println("请输入第三个和尚的身高:");int h3 = sc.nextInt();//用三元运算符获取前两个和尚的较高身高值,并用临时身高变量保存起来。int temp = h1 > h2 ? h1 : h2;//用三元运算符获取临时身高值和第三个和尚身高较高值,并用最大身高变量保存。int max = temp > h3 ? temp : h3;//输出结果。System.out.println("这三个和尚中身高最高的是:" + max +"cm");}
}

五、分支结构

5.1 IF

public class IfDemo {public static void main(String[] args) {System.out.println("开始");//定义两个变量int a = 10;int b = 20;//需求:判断a和b的值是否相等,如果相等,就在控制台输出:a等于bif(a == b) {System.out.println("a等于b");} //需求:判断a和c的值是否相等,如果相等,就在控制台输出:a等于cint c = 10;if(a == c) {System.out.println("a等于c");} System.out.println("结束");}
}

5.2 循环结构 For

public static void main(String[] args) {//需求:输出数据1-5for(int i=1; i<=5; i++) {System.out.println(i);} System.out.println("--------");//需求:输出数据5-1for(int i=5; i>=1; i--) {System.out.println(i);}
}

5.3 循环结构While

public static void main(String[] args) {//for循环实现打印10次HelloWorldfor(int i=1; i<=10; i++) {System.out.println("HelloWorld");} //定义初始化变量int i = 1;while(i<=10){System.out.println("HelloWorld");//步进i++;}
}

5.4 循环结构do-While

public static void main(String[] args) {int x=1;do {System.out.println("HelloWorld");x++;} while(x<=10);
}

5.5循环跳转

5.5.1 break语句

使用场景:在选择结构switch语句中 在循环语句中 离开使用场景的存在是没有意义的

5.5.2 continue语句

使用场景:结束本次循环,继续下一次的循环 只能使用在循环语句中

六、随机数Random

//1. 导包
import java.util.Random;public class Demo01_Random {public static void main(String[] args) {//2. 创建键盘录入数据的对象Random r = new Random();for(int i = 0; i < 3; i++){//3. 随机生成一个数据int number = r.nextInt(10);//4. 输出数据System.out.println("number:"+ number);}}
}

七、数组

7.1数组动态初始化

数组动态初始化就是只给定数组的长度,由系统给出默认初始化值。

格式:

数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[长度];

int[] arr = new int[3];

7.2 数组静态初始化

在创建数组时,直接确定数组元素。

数据类型[ ] 数组名 = new 数据类型 [ ]{ 元素1,元素2,元素3... };

int[] arr = new int [ ]{ 1, 2, 3, 4, 5};

数据类型[ ] 数组名 = { 元素1,元素2,元素3... };
int[ ] arr  =  { 1, 2, 3, 4, 5};

7.3 数组原理内存图

JVM的内存划分:

7.3.1 一个数组内存图

public static void main(String[] args) {int[] arr = new int[3];System.out.println(arr);//[I@5f150435
}

7.3.2 两个数组内存图

public static void main(String[] args) {int[] arr = new int[3];int[] arr2 = new int[2];System.out.println(arr);System.out.println(arr2);
}

 7.3.3 两个变量指向一个数组

public static void main(String[] args) {// 定义数组,存储3个元素int[] arr = new int[3];//数组索引进行赋值arr[0] = 5;arr[1] = 6;arr[2] = 7;//输出3个索引上的元素值System.out.println(arr[0]);System.out.println(arr[1]);System.out.println(arr[2]);//定义数组变量arr2,将arr的地址赋值给arr2int[] arr2 = arr;arr2[1] = 9;System.out.println(arr[1]);
}

 八、方法

8.1 无参数无返回值的方式

public class Demo04Method {public static void main(String[] args) {System.out.println("main....start....");//调用方法printOu();printOu();System.out.println("main....end....");}//定义一个方法,打印输出该方法内部的数据(方法内部定义的变量)是否是偶数public static void printOu() {int num = 18;//判断num是否是偶数if (num % 2 == 0) {System.out.println(num + "是一个偶数");} else {System.out.println(num + "不是一个偶数");}return ;//结束方法,返回到方法的调用处,可以省略的}
}

8.2 有参数无返回值的方式

public class Demo03MethodParams {public static void main(String[] args) {System.out.println("main...start...");//调用方法printOu(12);printOu(15);System.out.println("main...end...");}/*定义一个方法,该方法接收一个int参数,方法内部打印输出该数据是否是偶数三要素:1.方法名称:     printOu2.参数列表:     int num3.返回值类型:   void*/public static void printOu(int num) {if (num % 2 == 0) {System.out.println(num+"是一个偶数");} else {System.out.println(num+"不是一个偶数");}return ;}
}

8.3 有参数有返回值的方式

public class Demo03MethodParams {public static void main(String[] args) {System.out.println("main...start...");//调用方法boolean result = isOu(15);System.out.println("是否是偶数? "+result);System.out.println("main...end...");}/*定义一个方法,该方法接收一个int参数,方法内部判断是否是偶数三要素:1.方法名称:     isOu2.参数列表:     int num3.返回值类型:   boolean*/public static boolean isOu(int num) {if (num % 2 == 0) {return true;} else {return false;}}
}

 八、方法重载

方法重载:指在同一个类中,允许存在一个以上的同名方法,只要它们的参数不相同,类型不同或者数量不同即可,与修饰符和返回值类型无关。

public class Demo01MethodProblem {public static void main(String[] args) {//打印/输出调用方法: 传递常量System.out.println(getTwoIntNumSum(10,20));System.out.println(getThreeIntNumSum(10,20,30));System.out.println(getTwoDoubleNumSum(10.0,20.0));System.out.println(getThreeDoubleNumSum(10.0,20.0,30.0));}//1.定义一个获取两个int数字之和的方法public static int getTwoIntNumSum(int a, int b) {return a + b;}//2.定义一个获取三个int数字之和的方法public static int getThreeIntNumSum(int a, int b,int c) {return a + b + c;}//3.定义一个获取两个double数字之和的方法public static double getTwoDoubleNumSum(double a, double b) {return a + b;}//4.定义一个获取三个double数字之和的方法public static double getThreeDoubleNumSum(double a, double b,double c) {return a + b + c;}
}

九、方法的参数传递

9.1 方法参数传递

public class Demo01Var {public static void main(String[] args) {//定义int变量a,并初始化int a = 20;//定义int变量b,未初始化int b;b = a;//把变量a中的值赋值给变量bSystem.out.println("a="+a);//20System.out.println("b="+b);//20b = b*10;System.out.println("a="+a);//20System.out.println("b="+b);//200method();//System.out.println(num);//错误: num是在method方法内部定义,只在method方法内部有效}public static void method(/*int m*/) {int num = 100;System.out.println(num);//System.out.println(a);//错误: a是在main方法内部定义,只在main方法内部有效}
}

 9.2 基本类型作为方法参数传递

/*基本数据类型作为方法参数注意:1.基本类型变量: 保存的是具体的数据值2.基本类型变量作为形式参数,形式参数的改变,不会影响实际参数基本类型变量作为形式参数:定义方法时,()中定义的参数属于基本类型不会影响实际参数: 调用方法时,()中给出的参数*/
public class Demo02BaseVar {public static void main(String[] args) {int a = 10;int b = 20;System.out.println("ms...a="+a);//10System.out.println("ms...b="+b);//20//调用方法change( a , b );System.out.println("me...a="+a);//10System.out.println("me...b="+b);//20}public static void change(int a, int b) {System.out.println("cs...a="+a);//10System.out.println("cs...b="+b);//20a = a*10;b = b*10;System.out.println("ce...a="+a);//100System.out.println("ce...b="+b);//200}
}

 

  9.3 引用类型作为方法参数传递

/*引用数据类型作为方法参数注意:1.引用类型变量: 保存的是对象在堆内存空间的地址值,进行参数传递的时候,传递的也是地址值2.引用类型变量作为形式参数,通过形式参数找到对应的堆内存空间,修改堆内存空间的内容之后,通过实际参数看到的一定是修改后的堆内存空间的内容引用类型作为形式参数,形式参数的改变,会影响实际参数数组:1.数组也是一种引用类型: 数组名称保存的也是数组在堆内存空间的地址值2.数组作为方法参数或者返回值: 传递的都是数组在堆内存空间的地址值*/
public class Demo03RefVar {public static void main(String[] args) {int[] arr = { 10 , 20 };//System.out.println(arr);//数组名称: 保存数组在内存中的地址值[I@1540e19dSystem.out.println("ms...arr[0]="+arr[0]);//10System.out.println("ms...arr[1]="+arr[1]);//20//调用方法change( arr );System.out.println("me...arr[0]="+arr[0]);//100System.out.println("me...arr[1]="+arr[1]);//200}public static void change(int[] arr ) {System.out.println("cs...arr[0]="+arr[0]);//10System.out.println("cs...arr[1]="+arr[1]);//20arr[0] = arr[0]*10;arr[1] = arr[1]*10;System.out.println("ce...arr[0]="+arr[0]);//100System.out.println("ce...arr[1]="+arr[1]);//200}
}

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

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

相关文章

数据结构链表之队列,Python3实现——7

数据结构链表之队列 队列概述 定义&#xff1a;队列是一种基于先进先出(FIFO)的数据结构&#xff0c;队列只能在一段进行插入和删除操作的结构&#xff0c;第一个进入队列的元素在读取时会第一个被读取 队列可以使用顺序表(Python中列表)实现&#xff0c;也可以用链表实现&am…

IDEA上Debug调试全流程

一、什么是Debug模式 是供程序员使用的程序调试工具&#xff0c;它可以用于查看程序的执行流程&#xff0c;也可以用于追踪程序执行过程来调试程序。使用IDEA的断点调试功能&#xff0c;查看程序的运行过程 Debug调试窗口介绍。 二、Debug模式操作流程【应用】 能够使用断点调…

数据结构链表之符号表,Python3实现——8

数据结构链表之符号表 符号表的介绍 之前章节介绍的顺序表和链表都是一个节点储存一个元素的表&#xff0c;但在日常生活中我们还有很多一次需要储存成对或多个值的情况&#xff0c;例如&#xff1a; 符号表最主要的目的将一对元素&#xff0c;用一个键和一个值将其联系起来&…

OpenCV_01 简介+无版权安装+模块分析

OpenCV是应用广泛的开源图像处理库&#xff0c;我们以其为基础&#xff0c;介绍相关的图像处理方法&#xff1a;包括基本的图像处理方法&#xff1a;几何变换&#xff0c;形态学变换&#xff0c;图像平滑&#xff0c;直方图操作&#xff0c;模板匹配&#xff0c;霍夫变换等&…

OpenCV_02 图像的基本操作:图像IO+绘制图形+像素点+属性+图像通道+色彩空间的改变

1 图像的IO操作 这里我们会给大家介绍如何读取图像&#xff0c;如何显示图像和如何保存图像。 1.1 读取图像 API cv.imread()参数&#xff1a; 要读取的图像 读取方式的标志 cv.IMREAD*COLOR&#xff1a;以彩色模式加载图像&#xff0c;任何图像的透明度都将被忽略。这是默…

数据结构之树:树的介绍——9

数据结构之树&#xff0c;介绍篇 树的基本定义 介绍&#xff1a;树&#xff08;tree&#xff09;是计算机中非常重要的数据结构&#xff0c;它的外形看起来像一颗倒挂着的的树&#xff0c;使用树这种结构可以描述生活中很多的事物&#xff0c;如族谱&#xff0c;单位的组织架…

OpenCV_03 图像的算数操作:图像的加法+图像的混合

1.图像的加法 你可以使用OpenCV的cv.add()函数把两幅图像相加&#xff0c;或者可以简单地通过numpy操作添加两个图像&#xff0c;如res img1 img2。两个图像应该具有相同的大小和类型&#xff0c;或者第二个图像可以是标量值。 注意&#xff1a;OpenCV加法和Numpy加法之间存…

数据结构之二叉树:二叉查找树的先序、中序、后序、层序遍历,Python代码实现——10(续)

数据结构之二叉查找树的代码实现 本节继续对上一节BST的功能实现 在实现之前&#xff0c;先对要实现的功能进行一下简单的介绍 BST的几种常见遍历方式 以一个简化的树为例&#xff0c;一棵树包含根(父)结点和其左子树及右子树&#xff1a; 遍历顺序的先后是指根(父)结点被遍…

OpenCV_04 几何变换:图像缩放+图像平移+图像旋转+仿射变换+透射变换+图像金字塔

1 图像缩放 缩放是对图像的大小进行调整&#xff0c;即使图像放大或缩小。 API cv2.resize(src,dsize,fx0,fy0,interpolationcv2.INTER_LINEAR)参数&#xff1a; src : 输入图像 dsize: 绝对尺寸&#xff0c;直接指定调整后图像的大小 fx,fy: 相对尺寸&#xff0c;将dsize设…

Direct2D教程(九)渲染位图

概述 这篇的标题更确切的说应该叫位图画刷&#xff0c;这样才好和前几篇对应起来。在Direct2D中&#xff0c;位图的渲染也是通过画刷来实现的。 Direct2D中并没有直接操作位图的接口&#xff0c;而是借助WIC&#xff08;Windows Image Component&#xff09;来完成的。今天我们…

OpenCV_05 形态学操作:连通性+腐蚀和膨胀+开闭运算+礼帽和黑帽

1 连通性 在图像中&#xff0c;最小的单位是像素&#xff0c;每个像素周围有8个邻接像素&#xff0c;常见的邻接关系有3种&#xff1a;4邻接、8邻接和D邻接。分别如下图所示&#xff1a; 4邻接&#xff1a;像素p(x,y)的4邻域是&#xff1a;(x1,y)&#xff1b;(x-1,y)&#xff…

数据结构之二叉树:折纸问题——11

数据结构之二叉树&#xff1a;Python代码解决折纸问题 折纸问题 要求&#xff1a;请把一段纸条竖着放在桌子上&#xff0c;然后从纸条的下边向上方对折1次&#xff0c;压出折痕后展开。此时折痕是凹下去的&#xff0c;即折痕突起的方向指向纸条的背面。如果从纸条的下边向上方…

OpenCV_06 图像平滑:图像噪声+图像平滑+滤波

1 图像噪声 由于图像采集、处理、传输等过程不可避免的会受到噪声的污染&#xff0c;妨碍人们对图像理解及分析处理。常见的图像噪声有高斯噪声、椒盐噪声等。 1.1 椒盐噪声 椒盐噪声也称为脉冲噪声&#xff0c;是图像中经常见到的一种噪声&#xff0c;它是一种随机出现的白…

数据结构之堆:堆的介绍与python实现——12

堆的简单实现与代码实现 堆的定义 在定义堆&#xff08;heap&#xff09;之前&#xff0c;先回顾一下完全二叉树的定义&#xff1a; 完全二叉树&#xff1a;除了最后一层的结点有可能没有达到最大值外&#xff0c;其它层的结点值都达到最大值&#xff0c;此外最后一层的叶子…

OpenCV_07 直方图:灰度直方图+直方图均衡化

1 灰度直方图 1.1 原理 直方图是对数据进行统计的一种方法&#xff0c;并且将统计值组织到一系列实现定义好的 bin 当中。其中&#xff0c; bin 为直方图中经常用到的一个概念&#xff0c;可以译为 “直条” 或 “组距”&#xff0c;其数值是从数据中计算出的特征统计量&…

OpenCV_08 边缘检测:Sobel检测算子+Laplacian算子+Canny边缘检测

1 原理 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;边缘检测的目的是标识数字图像中亮度变化明显的点。图像属性中的显著变化通常反映了属性的重要事件和变化。边缘的表现形式如下图所示&#xff1a; 图像边缘检测大幅度地减少了数据量&#xff0c;并且剔除了可以…

数据结构之堆:堆的排序,Python代码实现——13

堆的排序&#xff0c;使用Python代码实现 上一节对堆进行了简单的实现&#xff0c;但是实现的堆只是部分有序&#xff08;父结点大于子结点&#xff0c;子结点之间无序&#xff09; 接下来我们实现对堆的所有元素进行升序排序 排序过程 实现步骤: 构造堆;得到堆顶元素,这个…

数据结构之优先队列:优先队列的介绍与基础操作实现,Python代码实现——14

优先队列(Priority queue)的介绍 优先队列是计算机中一种抽象的数据结构类&#xff0c;它有着一个类似和队列或者堆的结构&#xff0c;但是其中每个元素额外有一个优先级别在一个优先队列中&#xff0c;一个高优先顺序的元素会先执行与低优先顺序的元素。在它的执行过程中&…

初识--百年孤独

转载于:https://www.cnblogs.com/xmyun/articles/6306290.html

OpenCV_09 模版匹配和霍夫变换:霍夫线检测+霍夫圆检测

1 模板匹配 1.1 原理 所谓的模板匹配&#xff0c;就是在给定的图片中查找和模板最相似的区域&#xff0c;该算法的输入包括模板和图片&#xff0c;整个任务的思路就是按照滑窗的思路不断的移动模板图片&#xff0c;计算其与图像中对应区域的匹配度&#xff0c;最终将匹配度最…