JAVA 总结 #速成 期末

文件编码要相同,尽量为UTF-8

控制台的编码只认GBK,而源文件的编码是以utf-8编码,两者不搭,所以导致编译失败。如果有中时,就选GBK编码,否则就会和控制台的相左

目录

java小作业

自动转化类型

小知识点

想法

韩老师讲课

进制

输入

怎样提示输入错误,并要求重新输入,直到输入正确为止

随机数

编程思想

cmd

循环

for

while

dowhile

嵌套循环

break

continue

return

递归

数组

二维数组

对象&类

成员方法

对象

this


或者在cmd中输入javac -encoding UTF-8 Hello.java 也可以让中文注释运行成功

javac就是编译的意思 ( 编译 compile)

编译后没一个类都对应一个.class类

一个源文件中最多只包含一个public类,其他类的个数不限

运行就是装载到JVM中执行

应用新技术的时候,想到底有什么新的特点和规范再去好好应用

用户变量是针对该用户而言的。而系统变量是针对所有用户而言

DOS就是针对文件目录而言的

有人和我一样用截图来做笔记吗

win+e:调出我的电脑

自动转化类型

图中从左往右转

小知识点

img

java中的指针: JAVA里面的“指针”_JDream314的专栏-CSDN博客_java指针

想法

你平时用到了什么编程思想?

韩老师讲课

先讲基本语法再讲细节

进制

二进制的数以0b开头,后面跟着本身的数如01010代表着二进制010,十进制为2

八进制:10

十进制:01

十六进制:0x

进制转换

2---->10 ?

0110=

输入

==比较的是地址 而equals()比较的是字符

"贾宝玉" . equals("林黛玉") 这样写可以避免空指针

必写语句:

Scanner myScanner=new Scanner(System.in);

输入整数:

int a=myScanner.nextInt ()

输入浮点数:

System.out.println("input score"); ​ double score=myScanner.nextDouble();

输入字符:

char gender=myScanner.next().charAt(0);

先接受一个字符串,后接受第n个字符

char gender = scanner.next().charAt(n);

输入字符串

String s = myScanner.nextLine();

怎样提示输入错误,并要求重新输入,直到输入正确为止

while(1) { cin>>数据; if (数据==正确) break; }

随机数

Math下的random()返回 0到1之间的数

则Math.random()*100返回的事0到100的随机数

想生成整数的话就前面类型强制装换,(int)(Math.random()*100)

如果想生成1~100的数 则(int)(Math.random()*100)+1 因为int类型装潢是向下取整

编程思想

一个循环遍历二维数组

画内存分析图

cmd

技巧:cls(仓老师)就把之前编译运行的代码都清空

ctrl+c退出程序

md 后面写目录 来 新建文件夹

先死后活

先考虑固定的值,再转成可以灵活变换的值

化繁为简

将复杂的需求拆为简单的需求

循环

for

细节

1,巡环条件是返回bool值得一个表达式

2,for(;循环条件;)剩下的两项可以写到其他地方,但是;不能省略

循环变量初始化;
 for( ;循环条件; )
 {
    循环操作;
    循环变量迭代;
 }
这样更有助于理解for循环的执行流程
​

3,for(;;)无限循环,然后配合break和continue使用

4,循环初始化变量&循环迭代变量可以有多条语句,但是规定必须类型一样

00 12 24

```
public static void test6()
    {
        int count=0;
        for (int i=1;i<=100 ;i++ ) {
            if (i%5!=0)
            {
                count++;
                System.out.print(i+" ");
                if (count%5==0)
                {
                    System.out.println();
                }
            }
        }
​
​
}
```
​
​
​

while

dowhile

基本语法

注意;

先执行后判断,一定至少执行一次

最后有一个分号

也有循环四要素,只是位置不同

和while区别:要账(dowhile是先去了打你一栋(执行循环语句),在问你还不还钱(判断);

while循环是先问你还不还钱,if不还,则打你一栋 )

char speak;
        do
        {
            System.out.println("wulianbain,huanqian");
            Scanner myScanner=new Scanner(System.in);
            speak=myScanner.next().charAt(0);
            // if('y'.equals(speak))
            // {
                // }
    }while('y'!=speak);   // 判断是让他是否执行循环体中语句的作用!!!

嵌套循环

break

使用精髓:在巡环到想要的情况下调出就行!!!!

如果后面没有指定的标签,则默认退出最近的标签。如果在多循环体中break label2;则推出标签2

continue

基本语法

用于结束本次循环,继续执行下一次循环

如果后面跟有标签,则对该标签起作用

如果continue lable1; 直接跳转到本例中的 j++(循环变量迭代这里)

return

如果用在方法时,是跳出方法;如果在main函数中就是结束程序

递归

就是自己调用自己,每次调用自己时传入不同的变量(参数)

###

将用栈解决的问题,用递归来解决比较简洁

数组

二维数组

遍历

遍历对角线元素

//The diagonal element // for (int i=0,j=0;i<9 ;i++,j++ ) // { // System.out.println(arr2i); // }

遍历二维数组

一个循环

元素 1 对应的 行号为 [0 / 3] = 0,列号为 [0 % 3] = 0; 元素 2 对应的 行号为 [1 / 3] = 0,列号为 [1 % 3] = 1; 元素 3 对应的 行号为 [2 / 3] = 0,列号为 [2 % 3] = 2; 元素 4 对应的 行号为 [3 / 3] = 1,列号为 [3 % 3] = 0; 元素 5 对应的 行号为 [4 / 3] = 1,列号为 [4 % 3] = 1; 元素 6 对应的 行号为 [5 / 3] = 1,列号为 [5 % 3] = 2; ———————————————— 版权声明:本文为CSDN博主「小僧_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:用一个for循环打印出一个二维数组_小僧Coding-CSDN博客_循环打印二维数组

两个循环

两个for循环 但是内层for巡皇可以这样写:for(int =0 ; j<数组名[i].length ; j++ )

对象&类

对象内存布局(很重要!!!)

py和java相反,是自上而下的

正正的对象在堆中,而名字在栈中存储

方法调用机制:

结果为:继续执行sayOk()

print()方法被调用

是自己定义的数据类型

可以创建别的类,然后在类中创建方法

引例

使用现有技术解决的话

1.单独的定义变量

2.使用属数组来解决,但是属性名得对应数组的下表,也不能作出什么动作

成员方法

在方法中定义一个变量就是局部变量

如何返回多个值?

返回数组,返回对象,还要集合,用go语言,map,调用myTools遍历

返回类型中高精度的不能返回低精度的,会损失精度 如double转为int

方法之中不能在定义方法了,即方法之中不能嵌套定义

类的内部不能直接写代码,代码只能写在方法内部

方法调用

类中不能写方法,只能写在类中函数中!!!

1,同一个类中方法:A可以直接调用方法B,不用new对象

如:

2,跨类中的方法:必须创建对象,不然不知道你调用哪个类中的方法

如:A类中的m1要调用hi()就得在mi中新建B类对象

3,与方法的访问修饰符,所在包有关系

传参机制

基本数据类型

有数字&布尔型

传递的就是值(值拷贝),形参的任何改变不影响实参

例如:swap函数

引用数据类型 (数组,对象)

参数列表为: (int 【】【】 数组名, Person p1)

传递的是地址,地址存放在堆中,引用类型名存放在栈中

还有对象的修改

细节

p=nulll; 相当于把p指向的地址给清空了,并没有影响堆中的属性值 。 但是没有对别的地方置空

p=new Person();又找了1一个新的对象

对象的地址赋给了形参p,然后传给了test200()

红色新建的没有被用就相当于一个垃圾释放掉了

对象

是一个具体的实例

字符串是引用方式存放的

Person p1=new Person();

p1是对象引用(对象名) 就比如自己的名字wzj,只是一个代表你的代号,而你的心理,圣体,眼镜等才是正真的你自己

new Person()才是正正的对象,创建的对象空间(数据)

Person p1; //先声明对象p1

p1=new Person(); //创建对象

在内存中创建的过程看【零基础 快速学Java】韩顺平 零基础30天学会Java_哔哩哔哩_bilibili

属性

可以是基本类型,也可以是引用数据类型(对象,数组,字符串)

重载

方法名:必须相同

参数列表:必须不同。参数类型,个数,顺序至少有一个不一样

返回类型:无要求

构造方法

写法:public 类名(参数 ){}

反编译:cmd中输入javap 类名.class

javap可以了解编译器内部的很多工作,对class文件提供的字节代码进行反编译

class Dog(){

Dog();

}

this

哪个对象调用,this就代表哪个对象

this是影藏起来的

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值