JAVA学习记录

JAVA基础学习记录

3月30日

JAVA语言基础
1.选择结构if语句格式及其使用
if(比较表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;
案例演示:获取两个数据中较大的值

Scanner sc=new Scanner(System.in);
System.out.println("请输入第一个整数");
int a=sc.nextInt();
System.out.println("请输入第二个整数");
int b=sc.nextInt();
int max;
if(a>b){
    max=a;
}else{
    max=b;
}
System.out.println("最大值是"+max);

2.switch语句的格式及使用
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;

default:
语句体n+1;
break;
}
执行流程:
先计算表达式的值
然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句
实例演示:
用switch语句实现以下需求:
请根据键盘输入的月份,打印出对应月份的天数

ackage com.java.tr;

import java.util.Scanner;

public class ifDemo{
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int month = scanner.nextInt();
        if(month >= 1 && month <= 12) {
            switch (month) {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    System.out.println(31);
                    break;
                case 2:
                    System.out.println(28);
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    System.out.println(30);
                    break;
            }
        }
    }
}

if语句和switch语句应该如何选择?
if语句:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
switch语句:
针对几个常量值的判断
3.for循环语句
格式:
for(初始化表达式语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程:
a:执行初始化表达式语句
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到B继续。
实例:

1、请编写程序,打印出如下图形,并在main方法中调用

1

12

123

1234

12345

System.out.println("请输入数字");
        Scanner scanner=new Scanner(System.in);
        String s =
scanner.nextLine();
        Integer integer =
Integer.valueOf(s);
        dayin(integer);
    }
    public  static void dayin(int sum){ 
        for (int i = 1; i <= sum; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(j);
            }
            System.out.println();
        }

4.while循环语句
格式:
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程:
a:执行初始化条件语句;
b:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
c:执行循环体语句;
d:执行控制条件语句
e:回到b继续。
实例:
求1–100之间的整数的和

int j=1;
int sum=0;
while (j<=100){
    sum+=j;
    j++;
}
System.out.println("和是 "+sum);~

5.do…while循环语句
格式:
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:
a:执行初始化条件语句;
b:执行循环体语句;
c:执行控制条件语句;
d:执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
e:回到b继续。
实例:
输出8次你好,用dowhile语句

int i=10;
do{
    System.out.println("你好");
    i--;
}while (i>2);~

循环嵌套已在for循环实例中展现
6.控制跳转语句的分类
break 中断
continue 继续
break的使用场景
(1):在选择结构switch语句中
(2):在循环语句中
break的作用:
a:退出单层循环
b:退出多层循环(几乎不使用)
要想实现这个效果,就必须知道一个东西;带标签的语句;
格式:标签名:语句
continue的使用场景
(1):在循环语句中
(2):离开使用场景的存在是没有意义的
continue的作用
a:跳出一次循环,执行下一步操作

30日总结:

主要学习了if,switch语句,以及for,while,do…while循环,还有一些控制跳转语句的使用,这些都是JAVA的语言基础,通过课后题的练习,感觉自己的知识更加稳固。只有反复的练习才能熟悉的使用这些基础语法,一定要打好基础,这样以后才能更加深入的学习。

3月31日

1.方法概述和格式说明

方法就是完成特定功能的代码块
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2 …){
方法体;
return 返回值;
}
实例演示:
根据键盘录入的行数和列数,在控制台输出星形

Scanner scanner = new Scanner(System.in);
    System.out.println("请输入行数");
    int num= scanner.nextInt();
    System.out.println("请输入列数");
    int num2 = scanner.nextInt();
    showStar(num,num2);

}

private static void showStar(int num, int num2) {
    for (int i = 0; i <= num; i++) {
        for (int i1 = 0; i1 <= num2; i1++) {
            System.out.print("*");
        }
        System.out.println();
    }~

2.数组

数组是存储多个变量(元素)的东西(容器)
这多个变量的数据类型要一致

数组概念:
数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。
数组既可以存储基本数据类型,也可以存储引用数据类型(后面讲解)。

数组定义格式:
格式1: 数据类型[] 数组名;
格式2: 数据类型 数组名[]

什么是数组的初始化???
Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值。

初始化的分类:
a:动态初始化: 只指定长度,由系统给出初始化值
b:静态初始化: 给出初始化值,由系统决定长度
注意事项: 这两种方式,只能使用一种,不能进行动静结合

Java中的内存分配以及栈和堆的区别
栈: 存放的是局部变量
局部变量:在方法定义中或者方法声明上的变量都是局部变量。

堆: 存放的是所有new出来的东西
特点:
a: 每一个new出来的东西都会为其分配一个地制值。
b: 每一个变量都有一个默认的值
byte,short,int,long – 0
float,double – 0.0
char – ‘\u0000’
boolean – false
引用数据类型 – null
c: 使用完毕就变成了垃圾,等待垃圾回收器对其回收

二维数组概述和格式
格式:
int[][] arr = new int3;
定义了一个二维数组arr
这个二维数组有3个一维数组,名称是arr[0],arr1,arr2
每个一维数组有2个元素,可以通过arr[m][n]来获取
表示获取第m+1个一维数组的第n+1个元素
二维数组概述:
二维数组其实就是每一个元素为一维数组的数组。

实例:
定义一个二维数组,输出二维数组的名称和二维数组的的每一个一维数组,然后动态给二维数组赋值一维数组
再次输出二维数组中的每一个一维数组,给二维数组中的元素赋值,输出对应的元素值

int[] arr1 = new int[3];
arr1[0]=10;
arr1[2]=200;
int[] arr2 = new int[3];
arr2[0]=11;
arr2[1]=19;
int[] arr3=arr1;
arr3[0]=108;
arr3[1]=106;
arr1[1]=177;
System.out.println(arr1[0]); //  108
System.out.println(arr1[1]); // 177
System.out.println(arr1[2]); // 200
System.out.println(arr2[0]); // 11
System.out.println(arr2[1]); // 19
System.out.println(arr2[2]); // 0
System.out.println(arr3[0]); // 108
System.out.println(arr3[1]); // 177
System.out.println(arr3[2]); // 200~

数组查表法(根据键盘录入索引, 查找对应星期);根据索引查元素

 String[] arr = {"星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期天"};
    Scanner scanner = new Scanner(System.in);
    System.out.println("请输入一个整数 1----7");
    int index = scanner.nextInt();
    String str = getElementByArray(index, arr);
    System.out.println(str);
}

private static String getElementByArray(int index, String[] arr) {
    if (index >= 1 && index <= 7) {
        return arr[index - 1];
    } else {
        return "查无此元素";
    }
   

31日总结

主要学习了方法和数组,相比于前一天类容要更复杂一些,通过听课,看书,然后自己敲代码,对方法和数组有了一定的了解,但是感觉还是不够熟悉,我决定花多一点的时间在31日所学的知识上,反复练习,相信会有所提高。

  1. 全新的界面设计 ,将会带来全新的写作体验;
  2. 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;
  3. 增加了 图片拖拽 功能,你可以将本地的图片直接拖拽到编辑区域直接展示;
  4. 全新的 KaTeX数学公式 语法;
  5. 增加了支持甘特图的mermaid语法1 功能;
  6. 增加了 多屏幕编辑 Markdown文章功能;
  7. 增加了 焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置 等功能,功能按钮位于编辑区域与预览区域中间;
  8. 增加了 检查列表 功能。

功能快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G

合理的创建标题,有助于目录的生成

直接输入1次#,并按下space后,将生成1级标题。
输入2次#,并按下space后,将生成2级标题。
以此类推,我们支持6级标题。有助于使用TOC语法后生成一个完美的目录。

如何改变文本的样式

强调文本 强调文本

加粗文本 加粗文本

标记文本

删除文本

引用文本

H2O is是液体。

210 运算结果是 1024.

插入链接与图片

链接: link.

图片: Alt

带尺寸的图片: Alt

居中的图片: Alt

居中并且带尺寸的图片: Alt

当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。

如何插入一段漂亮的代码片

去博客设置页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 代码片.

// An highlighted block
var foo = 'bar';

生成一个适合你的列表

  • 项目
    • 项目
      • 项目
  1. 项目1
  2. 项目2
  3. 项目3
  • 计划任务
  • 完成任务

创建一个表格

一个简单的表格是这么创建的:

项目 Value
电脑 $1600
手机 $12
导管 $1

设定内容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列 第二列 第三列
第一列文本居中 第二列文本居右 第三列文本居左

SmartyPants

SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如:

TYPE ASCII HTML
Single backticks 'Isn't this fun?' ‘Isn’t this fun?’
Quotes "Isn't this fun?" “Isn’t this fun?”
Dashes -- is en-dash, --- is em-dash – is en-dash, — is em-dash

创建一个自定义列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何创建一个注脚

一个具有注脚的文本。2

注释也是必不可少的

Markdown将文本转换为 HTML

KaTeX数学公式

您可以使用渲染LaTeX数学表达式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通过欧拉积分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多关于的信息 LaTeX 数学表达式here.

新的甘特图功能,丰富你的文章

Mon 06 Mon 13 Mon 20 已完成 进行中 计划一 计划二 现有任务 Adding GANTT diagram functionality to mermaid
  • 关于 甘特图 语法,参考 这儿,

UML 图表

可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图::

张三 李四 王五 你好!李四, 最近怎么样? 你最近怎么样,王五? 我很好,谢谢! 我很好,谢谢! 李四想了很长时间, 文字太长了 不适合放在一行. 打量着王五... 很好... 王五, 你怎么样? 张三 李四 王五

这将产生一个流程图。:

链接
长方形
圆角长方形
菱形
  • 关于 Mermaid 语法,参考 这儿,

FLowchart流程图

我们依旧会支持flowchart的流程图:

Created with Raphaël 2.2.0 开始 我的操作 确认? 结束 yes no
  • 关于 Flowchart流程图 语法,参考 这儿.

导出与导入

导出

如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。

导入

如果你想加载一篇你写过的.md文件或者.html文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入,
继续你的创作。


  1. mermaid语法说明 ↩︎

  2. 注脚的解释 ↩︎

你可能感兴趣的:(JAVA,JAVA基础)