JAVASE(初级)

本文介绍了Java编程的基础知识,包括CMD命令、Java关键字、数据类型、变量、运算符、字符串处理、流程控制语句如循环和分支结构,以及数组、方法的定义和调用。还讨论了类、对象的概念,构造方法,以及内存图和多态的基本概念。
摘要由CSDN通过智能技术生成

java入门

一、CMD

 1.打开cmd

Win打开,输入cmd,回车

2常见cmd的指令

 盘符名称+冒号:盘符转换

dir:查看当前路径下的内容

cd目录:进入单级目录

cd..回退到上一级目录

cd 目录一/目录二:进入多级目录

cd\ 返回到盘符目录

cls:清屏

exit:退出命令提示符窗口

2,Java基础概念

注释:

单行注释//

多行注释/*   */

文档注释/** */

无论是单行还是多行注释,使用的时候都不要嵌套

关键字:

被Java赋予了特定含义的英文单词

字面量:

数据在程序中的书写形式

分类:整数,小数,字符串,字符,布尔,空。

特殊字面量:水平制表符\t,空null

变量:

01 定义格式:数据名称 变量名 =数据值;

02注意事项

变量只能存一个值

变量名不能重复

一条语句可以定义多个变量

使用前一定要赋值

数据在计算机中的储存

不同进制在代码中的表现形式

二进制:由0和1组成,代码中以0b开头

十进制:由0-9组成,前面不加任何前缀

八进制:由0-7组成,代码中以0开头

十六进制:由0-9和a-f组成,代码中以0x开头

在计算机中,任意数据都是以二进制的形式来储存的

数字直接以二进制存储,汉字和字符则是查询对应的ASCII表再以二进制存储 

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

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

数据类型:

基本数据类型

整数,浮点数,字符,布尔

整数

byte -128-127

short -32768-32767

int -2147483648-2147483647(10位数)

long -9223372036854775808-9223372036854775807(19位数)

如果要定义long类型的变量,在数据值的后面需要加一个L作为后缀,大小写均可,为防止与数字1混淆建议使用大写L

浮点数 

float

double

定义float类型变量的时候数据值也需要加一个F作为后缀,定义double的时候则不需要

字符

char

布尔

boolean

引用数据类型

标识符:

给类,方法,变量等起的名字

由数字,字母,下划线和美元符$组成

不能以数字开头

不能是关键字

区分大小写

键盘录入:

利用已有的类Scanner,用于接收键盘输入的数字

步骤一:导包---Scanner这个类在哪

import java.util.Scanner; 导包的动作必须出现在类定义的上边

步骤二:创建对象---表示我要开始用Scanner这个类了

Scanner sc = new Scanner(System.in);

上面这个格式里面,只有sc是变量名,可以变,其他的都不许变。

步骤三:接收数据---真正开始干活了

int i= sc.nextInt();左边这个格式里面,只有i是变量名,可以变,其他的都不许变。

运算符和表达式

运算符:对字面量或者变量进行操作的符号

表达式:用运算符吧字面量或者变量连接起来符合Java语法的式子就可以称为表达式。

不同运算符连接的表达式体现的是不同类型的表达式

算术运算符 + - * / %

隐式转换的两种提升规则

1:取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算

2:byte short char 三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算

 强制转换:如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接赋值的。如果一定要这么做就需要加入强制转换。

格式:目标数据类型· 变量名 = (目标数据类型)被强转的数据;     

字符串的+操作

当+操作中出现字符串时,这个+是字符串连接符,而不是算数运算符了。会将前后的数据进行拼接,并产生一个新的字符串

连续进行+操作 从左到右逐个执行

1+99+"年黑马"           "100年黑马"

字符的+操作

当字符+字符,字符+数字时,会把1字符通过ASCII码表查询到对应的数字再行计算

自增自减

前置:先加后用

后置:先用后加

赋值运算符

+=,*=等

关系运算符

==,>=,<=等

逻辑运算符

& 逻辑与(且) 并且,两边都为真,结果才为真

| 逻辑或 或者,两边都为假,结果才为假

^逻辑异或 相同为false,不同为true

!逻辑非 取反

短路与&&

短路或||

三元运算符(三目运算符)

关系表达式?表达式1:表达式2

若关系表达式为true1值为表达式1,false则为表达式2

原码补码反码

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

反码:正数的反码是它本身,负数的反码是符号位保持不变,其余位取反

补码:正数的补码使其本身,负数的补码是在其反码的基础上去+1

计算机中的储存和计算都是以补码的形式进行的

运算符&逻辑与

都为1结果为1,其余为0

1100 1000

0000 1010

0000 1000

运算符|逻辑或

有1个及以上1为1
1100 1000

0000 1010

1100 1010

左移<<

向左移动,低位补0

右移>>

向右移动,高位补0或1(根据符号位决定)

无符号右移>>>

向右移动,高位补0

流程控制语句

1.顺序结构

顺序结构是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次进行

2.分支结构

    1.if语句

        if(关系表达式)
       {

        语句体1;

        } 

执行流程1首先计算关系表达式的值

               2如果关系表达式的值为true就执行语句体

               3如果关系表达式的值为false就不执行语句体

               4继续执行后面的其他语句

cfba956969554ad4837458fa205aea93.png

 switch语句

46824c900bad4074a566ccec70e9a578.png

 switch中省略break的写法

case 1->{

语句体;

}

循环结构

for

while 

do ...while 

for :

for(初始化语句;条件判断语句;条件控制语句)

{

循环体语句:

}

初始化语句只执行一次

while循环

1f399a3edaa747608f3705117db89dcd.png

高级循环 

无线循环

for(; ;)

while(true)

do 

{

}while(true);

continue:

结束本次循环进行下次循环

数组

数组容器在存储数据的时候,需要结合隐式转换考虑

建议:容器的类型和存储的数据类型保持一致

数组的定义

1.格式一:数据类型 [ ] 数组名

范例 int  [] array

2.格式二:数据类型 数组名 []

范例: int array []

数组的遍历

数组遍历:将数组中的所有内容取出来,取出来之后可以(打印,求和,判断...)

注意:遍历指的是取出数据的过程,不要局限的理解为,遍历就是打印。

数组的动态初始化

动态初始化:初始化时只指定数组长度,由系统为数组分配初始值

格式:数据类型  [] 数组名 = new 数据类型 [数组长度];

范例: int [] arr =new int [3];

数组默认初始化值的规律

整数类型 默认值为0

小数类型 默认值为0.0

字符类型 默认初始值为'/u0000'

布尔类型 默认初始值 false 

引用数据类型 默认初始值为 null

数组动态初始化和静态初始化的区别

动态初始化:手动指定数组长度,由系统给出默认初始值

静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度。

只要是new出来的一定是在堆里面开辟了一个小空间

如果new了多次,那么在堆里面有多个小空间,每个小空间都有各自的数据

方法

方法(method)是程序中最小的执行单元

好处:提高代码的复用性,提高代码的可维护性

最简单的方法的定义和调用

格式

pubilc static void 方法名(){

方法体

}

带参数的函数定义及调用
形参:全称形式参数,是指方法定义中的参数

实参:全称实际参数,方法调用中的参数 

带返回值的方法

1直接调用

2赋值调用

3输出调用

方法的重载

在同一个类中,定义了多个同名的方法,这些同名的方法具有同种的功能。

每个方法具有不同的参数类型或参数个数,这些同名的方法,就构成了重载关系

简单记:同一个类中,方法名相同,参数不同的方法,与返回值无关

参数不同:个数不同,类型不同,顺序不同

方法被调用之后就会进栈运行

基本数据类型与引用数据类型

基本数据类型中存储的是真实的数据

引用数据类型:储存的是地址值,引用:使用了其他空间中的数据

二维数组的动态初始化

格式 数据类型[][]数组名 = new 数据类型[m][n];

类和对象:

类:共同特征的设计图

对象:真实存在的案例

定义类:

public 类名{

1.成员方法

2.成员变量

构造器

代码块

内部类

}

成员变量只定义不给值

定义方法:类名 对象名= new 类名();

用来描述对象的类叫javabean类

对象代表什么就该封装什么样的数据,并提供数据对应的行为

pirvate 是一个权限修饰符

pirvate

this的作用:可以区分局部变量和成员变量

构造方法的格式

1.方法名与类名相同,大小写也要一致。

2.没有返回值类型,连void都没有

3.没有具体的返回值

执行时机

创建对象时由虚拟机调用,不能手动调用

每创建一次对象,就调用一次构造方法

无参构造方法:初始化对象时所有成员变量均采取默认值

有参构造方法:初始化对象时,同时可以为对象赋值。

标准的javabean类

0d82b02178bb4732bd16411a14ae0afb.png

按住shift点最下面的,全选或者Ctrl+A

插件ptg可以一秒生成

.写代码时用Alt-Insert(Code|Generate…)可以创建类里面任何字段的getter与setter方法。

2.按Ctrl-N再键入类的名字可以快速地在编辑器里打开任何一个类。从显示出来的下拉列表里选择类。同样的方法你可以通过使用Ctrl-Shift-N打开工程中的非Java文件。

3.Ctrl-D复制当前行,Ctrl-Y删除当前行。

4.Ctrl-Shift-U,Ctrl+Shift+Alt+U显示类继承结构图,再按Alt-M。

5.Alt-F1 回到当前文件所在的目录结构

6.Ctrl-Shift-V 粘贴最近复制过的一些信息。

7.Ctrl-Shift-F7 高亮显示所有该文本,按Esc高亮消失。

8.Ctrl-E 最近打开的文件。

9.Ctrl-P 方法参数提示。

10.Alt+ Up/Down 在方法间快速移动定位

11.Ctrl+W 选中代码,连续按会有其他效果。

12.Shift + F6 选中目录结构的文件,重命名

13.Ctrl + Alt + F12 进入当前文件所在磁盘位置。

14.Ctrl + Shift + F搜索文件。

15.Ctrl + Shift + R 搜索指定范围文件,替换文字。

16.Ctrl + Shift +W 返回上一次选择的代码块状态。

17.Ctrl + Shift + J 自动将下一行合并到当前行末尾。

16.Ctrl + Tab Switcher 导航 与 Ctrl + E 类似效果。

17.Ctrl + Shift + C 复制当前文件磁盘路径到剪贴板。 [3] 

三种情况的对象内存图

6469da2a267f49bc98c7d34cc21a17aa.png

 内存:

1.加载class文件

2.申明局部变量

3.在堆空间中开辟一个空间

4.默认初始化

5.显示初始化

6.构造方法初始化

7.将堆空间中的地址值赋给左边的局部变量

两个对象的内存结构

0fca8b302a574ab3a085d8599a8bd286.png

 两个引用指向同一个对象

805bc54fa1a84f91be2daa2020b9a40d.png

 基本数据类型

数据值是储存在自己的空间中

引用数据类型

数据值是储存在其他空间中

自己空间中储存的是地址值

2eac23b0dcd543adbaac516178e56573.png

71c2d120bf7c4408954a6effcd0e66d3.png

99ada11f794c41389cebbd0ba3a32b30.png

 ctrl+p可以显示全部参数

键盘录入

第一套体系
nextInt()接收整数

nextDouble()接收小数

next()接收字符串

遇到空格,制表符,回车就停止接受,这些符号后面的数据就不会接受了

第二套体系

nextline();接收字符串

不建议一二套体系混用,因为例如输入123

nextInt接受123,下面的nextline很可能接受回车

字符串

51e6eee6bfce461e859502aa9b03258b.png

 

 

JAVA某些关于字符串方法的返回值才是操作后的结果

打印对象不是地址值而是属性值

标号:指定外部循环名字为loop,break跳出的为loop 

static

静态变量是随着类加载而加载的,优先于对象出现的

静态方法不能调用实例变量

非静态可以访问所有

 

 

Java只支持单继承不支持多继承,但支持多层继承

super表示父类的意思

 只有被添加到虚方法表中的方法才能被重写

子类重写父类方法时,返回值类型子类必须小于等于父类

判断是不是该类的对象用 instanceof,是该类对象返回true,否则返回false

a instanceof Dog d

先判断a是否为dog类型,如果是强转为dog类型转换之后变量名为d

不是dog类型,返回值为false

多态的优势,方法中,使用父类型作为参数,可以接受所有子类对象

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值