Java学习笔记1

1. 第⼀个 Java 程序

打开终端,输⼊
在这里插入图片描述
在终端将上述代码存放到 Hello.java 中,使⽤ javac Hello.java 编译代码,⽣成⼀个Hello.class ⽂件,接着使⽤ java Hello 来运⾏程序。
Java 源程序与编译型运⾏区别
在这里插入图片描述
基础语法

  • 对⼤小写敏感
  • 类名应当⼤写开头
  • ⽅法名要小写开头
  • 源⽂件名要和类名相同
  • 标识符由字⺟、下划线或 $ 打头,不能是关键字

2. Java 对象和类

看⼀个简单的类:
在这里插入图片描述
这个类描述了小狗,属性包含:名字、颜⾊和年龄,类⾥⾯的函数称为⽅法。
类中包含了⼀个 static 的静态⽅法,可以⾃动执⾏,不需要对象调用。

this 关键字:
当实例变量和局部变量重名,JAVA平台会按照先局部变量、后实例变量的顺序寻找。
如果使⽤this.name,则不会在⽅法(局部变量)中寻找变量name,而是直接去实例变量中去寻找。
当实例变量和局部变量名字不重复时,可以不使⽤ this,编译器会⾃动加上 this。

2.1 构造器

⼀般构造函数 public 可加可不加。如果加上 public,就代表此类可以对外开放,其他的类可以继承它,外部也可以实例化该对象;如果不加 public,则默认的修饰词是protected,代表只对同包开放。

2.2 创建对象和访问实例

在这里插入图片描述

2.3 java包

import java.io.* // 导入java_installation/java/io下的所有类

3. 数据与变量

3.1 基本数据类型

在这里插入图片描述
Java 为每⼀个内置数据类型都提供了对应的
包装类:Float, Double, Boolean, Byte, Short, Integer, Long, Character.
在这里插入图片描述
java Math类:
在这里插入图片描述

3.2 基本变量类型

  • 类变量:独⽴于⽅法之外的变量,⽤ static 修饰;
  • 实例变量:独⽴于⽅法之外的变量,不过没有 static 修饰;
  • 局部变量:类的⽅法中的变量。
    在这里插入图片描述
    类变量属于静态变量,⽆论⼀个类有多少个对象,类变量都共⽤⼀个!

4. Java 修饰符

4.1 访问控制修饰符

Java ⽀持四种不同的访问权限:

  • default:在同⼀包内可⻅,不使⽤任何修饰符。使⽤对象:类、接口、变量、⽅法。
  • private : 在同⼀类内可⻅。使⽤对象:变量、⽅法。 注意:不能修饰类(外部类)
  • public : 对所有类可⻅。使⽤对象:类、接口、变量、⽅法
  • protected : 对同⼀包内的类和所有⼦类可⻅。使⽤对象:变量、⽅法。 注意:不能修饰类(外部类)。

4.2 ⾮访问修饰符

static
静态变量:static 关键字⽤来声明独⽴于对象的静态变量,⽆论⼀个类实例化多少对象,它的静态变量只有⼀份拷⻉。
静态函数:static 关键字⽤来声明独⽴于对象的静态⽅法。静态⽅法不能使⽤类的⾮静态变量。
在这里插入图片描述

注意:在静态⽅法中调⽤⾮静态⽅法时,编译器会报错(因为⾮静态⽅法只有实例化的对象能够调⽤, 而静态⽅法执⾏的过程中未调⽤构造函数实例化对象,因此不允许调⽤!)
解决办法为要么创建⼀个类的对象,通过对象来调⽤函数,要么将⾮静态⽅法声明中加上 static 改为静态⽅法,同时将变量声明为全局静态的。

final
被 final 修饰的实例变量必须显式指定初始值,之后不能再修改。
在这里插入图片描述

5. 程序的逻辑结构

常⻅循环结构如下:
在这里插入图片描述
常⽤的分⽀结构如下:
在这里插入图片描述

6. String 字符串

6.1 字符串的存储

在这里插入图片描述
函数 System.identityHashCode(str) 可以打印出字符串 str 地址对应的哈希值
使⽤ String str = “xxxxx”; 声明的字符串存储在公共池⾥,存储字符串内容相同的字符串变量 相当于引⽤;
使⽤ new String(“xxxx”); 得到的字符串地址在堆内,每次 new 得到的对象地址不同;

6.2 字符串相关函数

长度length()
在这里插入图片描述

格式化字符串:String.format(str, args)
String 类使⽤静态⽅法 format() 返回⼀个String 对象
在这里插入图片描述
字符索引查询: indexOf()
在这里插入图片描述
字符串分割:split()
在这里插入图片描述
子串:substring()
在这里插入图片描述
⽐较函数: equals
填补⼀个⼤坑: equals ⽐较的是内容是否相等、 == ⽐较的是引⽤的变量地址是否相等。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210220161930665.png

7. StringBuffer 和 StringBuilder 类

7.1 特点

StrngBuilder 和 StringBuffer 类的对象⽀持多次的 ,而且并且不产⽣新的未使⽤对象!

  • StringBuilder 的⽅法不是线程安全的,但速度⾼(不能同步访问)。
  • 由于 StringBuilder 相较于 StringBuffer 有速度优势,所以多数情况下建议使⽤ StringBuilder 类。
    在这里插入图片描述

7.2 StringBuilder 和 StringBuffer 的使用

常⽤函数的语法如下(StringBuilder 和 StringBuffer 的使⽤⽅法⼏乎相同):
在这里插入图片描述
举个例⼦:
在这里插入图片描述
输出的结果为:
在这里插入图片描述

8. 数组的使⽤

声明与创建:
在这里插入图片描述

数组的访问与修改:
在这里插入图片描述
可以使⽤ Arrays 类的函数来对数组操作:
在这里插入图片描述

9. Java ⽅法

9.1 方法的定义与调用

⼀个⽅法包含了 修饰符、返回值类型 、方法名 、参数 和 ⽅法体 构成。
在这里插入图片描述
在不创建类对象的情况下,主函数可以调⽤静态⽅法:
在这里插入图片描述

9.2 可变参数

可变参数的声明⽅式为:

 typeName... parameterName

举个例⼦:
在这里插入图片描述
此处传⼊的参数有很多个,可以像数组⼀样来访问传⼊的参数。

10. 时间和日期

10.1 查看时间

java.util 包提供了 Date 类来封装当前的⽇期和时间,可以 new ⼀个 Date 对象:
在这里插入图片描述

10.2 格式化输出时间

在这里插入图片描述

10.3 测量时间

Thread.sleep(1000) 休眠 1000ms
System.currentTimeMillis() 获取毫秒数
在这里插入图片描述

10.4 Calendar 类

在这里插入图片描述

11. 输⼊与输出

11.1 Scanner 类

Java 提供了 Scannner 类,可以设置参数来从键盘读取数据,创建 Scanner 对象如下:
在这里插入图片描述

11.2 读取字符串

输⼊字符串的⽅式有两种:
next()

  • ⼀定要读取到有效字符后才可以结束输⼊
  • 输⼊⼀⾏时,以空格分隔字符串,因此不能得到带有空格的字符串;
    nextLine()
  • 输⼊⼀⾏,以换⾏符结束,能读取有空格的
  • 字符串可以读取空⽩内容
    举个例⼦:(输⼊为 “hello world”)
    在这里插入图片描述

11.3 读取数字

下⾯的程序对输⼊的所有数字求和,当输⼊不是 double 类型时(如字符串),程序会终⽌。
在这里插入图片描述

12. 异常捕获

使⽤ try-catch 来捕获 异常:
在这里插入图片描述
可以有多个 catch 来捕获不同类型的错误;不论是否存在异常, finall 关键字中的语句都会被执 ⾏。输出结果为:
在这里插入图片描述

13. data structure

Java 提供了⼀系列的存储数据结构和相应的算法,各种容器由 Collections 继承而来,算法可以通过 Collections 类来调⽤;容器的创建⽅法如下:
在这里插入图片描述

13.1 ArrayList

ArrayList 类是⼀个可以动态修改的数组,与普通数组的区别就是它是没有固定⼤小的限制;
在这里插入图片描述

13.2 Stack

Stack 常⽤的⽅法有: boolean empty() , E push() , E pop() , E peek()
在这里插入图片描述
除此之外,Java 还有 Vector , LinkList , Queue , Dictionary 等常⽤容器。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值