狂神说java学习第一天的笔记

1、ks-study_01

1.1 HelloWorld

1、使用notepad++书写第一个java程序

  • 新建文本文件,将.txt后缀改成.java
  • 新建的class类名需要和文件名保持一致
  • 避免在程序中出现中文

2、使用cmd命令行运行 javac HelloWorld 来创建.class文件

  • cmd命令行需要在文件所在目录

3、使用 java HelloWorld 运行这个最简单的java程序

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

1.2 java基础语法

1.2.1 基础知识

  • 对象:对象是类的一个实例,有状态和行为。例如,一条狗是一个对象,它的状态有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
  • :类是一个模板,它描述一类对象的行为和状态。
  • 方法:方法就是行为,一个类可以有很多方法。逻辑运算、数据修改以及所有动作都是在方法中完成的。
  • 实例变量:每个对象都有独特的实例变量,对象的状态由这些实例变量的值决定。

1.2.2 注释、标识符、关键字

  • 注释:注释不会执行,是写给程序员看的,用来解释代码
    • 单行注释:使用 // 可以注释一行文字,使得一行的文字都不会被执行
    • 多行注释:使用 /* 注释 */ 可以注释 /*之间的所有文字,不限于一行,可跨行
    • 文档注释:使用 /** 注释 */ ||主要是javadoc,后面讲到javadoc再回来看
    • 主要注意单行注释和多行注释,养成注释代码的好习惯
  • 标识符:Java 所有的组成部分都需要名字。类名、变量名以及方法名都被称为标识符。
    • 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
    • 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
    • 关键字不能用作标识符,即标识符不能是已知关键字,例如int
    • 标识符是大小写敏感的,java是大小写敏感的
    • 合法标识符举例:age、$salary、_value、__1_value
    • 非法标识符举例:123abc、-salary
  • 关键字:Java关键字是电脑语言里事先定义的,有特别意义的标识符,有时又叫保留字,还有特别意义的变量。
类别 关键字 说明
访问控制 private 私有的
protected 受保护的
public 公共的
default 默认值
类、方法和变量修饰符 abstract 声明抽象
class
extends 扩充继承
final 最终值,不可改变的
implements 实现(接口)
interface 接口
native 本地,原生方法(非java实现)
new 新,创建
static 静态
strictfp 严格,精准
synchronized 线程,同步
transient 短暂
volatile 易失
程序控制语句 break 跳出循环
case 定义一个值供Switch选择
continue 继续
default 默认值
do 运行
else 否则(用于if之后)
for 循环
if 如果
instanceof 实例
return 返回值
Switch 根据case值进行选择执行
while 循环
错误处理 assert 断言表达式是否为真
catch 捕捉异常
finally 有没有异常都执行
throw 抛出一个异常对象
throws 声明一个异常对象可能被抛出
try 捕获异常
包相关 import 引入
package
基本数据类型 boolean 布尔型
byte 字节型
char 字符型
double 双精度浮点型
float 单精度浮点型
int 整型
long 长整型
short 短整型
变量引用 super 父类,超类
this 本类
void 无返回值
保留关键字 goto 是关键字,但不能使用
const 是关键字,但不能使用

注意:Java 的 null 不是关键字,类似于 true 和 false,它是一个字面常量,不允许作为标识符使用。

1.2.3 基本数据类型

  • 内置数据类型
byte(字节型)-8位 -128(-2^7)~127(2^7-1);默认值为0
short-16位 -32768(-2^15)~32767(2^15-1);默认值为0
int(整型)-32位 -2^31~2^31-1;一般整型变量默认为int型,默认值为0
long-64位 -2^63~2^63-1;默认值为0L
float-单精度,32位 默认值为0.0f
double-双精度,64位 默认值为0.0d
boolean true和false;默认值为false
char-16位Unicode字符 \u0000~\uffff

  • 引用数据类型
String 默认为null

1.2.4 转义字符

\n 换行(0x0a) \r 回车(0x0d)
\f 换页符(0x0c) \b 退格(0x08)
\0 空字符(0x0) \s 空格(0x20)
\t 制表符 \" 双引号
\' 单引号 **\\ ** 反斜杠
\ddd 八进制字符(ddd) \uxxxx 16进制Unicode字符(xxxx)

1.2.5 类型转换

  • byte,short,char -> int -> long -> float -> double

  • 低----------------------------------------------------------->高

1)自动类型转换
  • 必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
2)强制类型转换
  • 格式:(type)value type是要强制类型转换后的数据类型
3)注意事项
  • 不能对boolean类型进行类型转换。
  • 不能把对象类型转换成不相关类的对象。
  • 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
  • 转换过程中可能导致溢出或损失精度。

1.2.6 变量

1)格式
  • type 变量名1 [ = value] [, 变量名2 [= value]...]
2)变量类型
  • 类变量:独立于方法之外的变量,用 static 修饰。
  • 实例变量:独立于方法之外的变量,不过没有 static 修饰。
  • 局部变量:类的方法中的变量。

1.2.7 修饰符

1)访问控制修饰符
  • default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
  • private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
  • public : 对所有类可见。使用对象:类、接口、变量、方法
  • protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
2)非访问修饰符
① static 修饰符
  • 静态变量:

    static 关键字用来声明独立于对象的静态变量,无论一个类实例化多少对象,它的静态变量只有一份拷贝。 静态变量也被称为类变量。局部变量不能被声明为 static 变量。

  • 静态方法:

    static 关键字用来声明独立于对象的静态方法。静态方法不能使用类的非静态变量。静态方法从参数列表得到数据,然后计算这些数据。

② final 修饰符
  • final 变量:

    final 表示"最后的、最终的"含义,变量一旦赋值后,不能被重新赋值。被 final 修饰的实例变量必须显式指定初始值。

    final 修饰符通常和 static 修饰符一起使用来创建类常量。

③ abstract 修饰符
  • 抽象类:

    抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。

    一个类不能同时被 abstract 和 final 修饰。如果一个类包含抽象方法,那么该类一定要声明为抽象类,否则将出现编译错误。

    抽象类可以包含抽象方法和非抽象方法。

  • 抽象方法

    抽象方法是一种没有任何实现的方法,该方法的具体实现由子类提供。

    抽象方法不能被声明成 final 和 static。

    任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。

    如果一个类包含若干个抽象方法,那么该类必须声明为抽象类。抽象类可以不包含抽象方法。

    抽象方法的声明以分号结尾,例如:public abstract sample();

④ transient 修饰符
⑤ volatile 修饰符

1.2.8 运算符

1)算术运算符
操作符 描述 例子
+ 加法 - 相加运算符两侧的值 A + B 等于 30
- 减法 - 左操作数减去右操作数 A – B 等于 -10
* 乘法 - 相乘操作符两侧的值 A * B等于200
/ 除法 - 左操作数除以右操作数 B / A等于2
取余 - 左操作数除以右操作数的余数 B%A等于0
++ 自增: 操作数的值增加1 B++ 或 ++B 等于 21(区别详见下文)
-- 自减: 操作数的值减少1 B-- 或 --B 等于 19(区别详见下文)
2)关系运算符
运算符 描述 例子
== 检查如果两个操作数的值是否相等,如果相等则条件为真。 (A == B)为假。
!= 检查如果两个操作数的值是否相等,如果值不相等则条件为真。 (A != B) 为真。
检查左操作数的值是否大于右操作数的值,如果是那么条件为真。 (A> B)为假。
检查左操作数的值是否小于右操作数的值,如果是那么条件为真。 (A <B)为真。
>= 检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真。 (A> = B)为假。
<= 检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真。 (A <= B)为真。
3)位运算符
操作符 描述 例子
如果相对应位都是1,则结果为1,否则为0 (A&B),得到12,即0000 1100
| 如果相对应位都是 0,则结果为 0,否则为 1 (A | B)得到61,即 0011 1101
^ 如果相对应位值相同,则结果为0,否则为1 (A ^ B)得到49,即 0011 0001
按位取反运算符翻转操作数的每一位,即0变成1,1变成0。 (〜A)得到-61,即1100 0011
<<  按位左移运算符。左操作数按位左移右操作数指定的位数。 A << 2得到240,即 1111 0000
>>  按位右移运算符。左操作数按位右移右操作数指定的位数。 A >> 2得到15即 1111
>>>  按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。 A>>>2得到15即0000 1111
4)逻辑运算符
操作符 描述 例子
&& 称为逻辑与运算符。当且仅当两个操作数都为真,条件才为真。 (A && B)为假。
| | 称为逻辑或操作符。如果任何两个操作数任何一个为真,条件为真。 (A | | B)为真。
称为逻辑非运算符。用来反转操作数的逻辑状态。如果条件为true,则逻辑非运算符将得到false。 !(A && B)为真。
5)赋值运算符
操作符 描述 例子
= 简单的赋值运算符,将右操作数的值赋给左侧操作数 C = A + B将把A + B得到的值赋给C
+ = 加和赋值操作符,它把左操作数和右操作数相加赋值给左操作数 C + = A等价于C = C + A
- = 减和赋值操作符,它把左操作数和右操作数相减赋值给左操作数 C - = A等价于C = C - A
* = 乘和赋值操作符,它把左操作数和右操作数相乘赋值给左操作数 C * = A等价于C = C * A
/ = 除和赋值操作符,它把左操作数和右操作数相除赋值给左操作数 C / = A,C 与 A 同类型时等价于 C = C / A
(%)= 取模和赋值操作符,它把左操作数和右操作数取模后赋值给左操作数 C%= A等价于C = C%A
<< = 左移位赋值运算符 C << = 2等价于C = C << 2
>> = 右移位赋值运算符 C >> = 2等价于C = C >> 2
&= 按位与赋值运算符 C&= 2等价于C = C&2
^ = 按位异或赋值操作符 C ^ = 2等价于C = C ^ 2
| = 按位或赋值操作符 C | = 2等价于C = C | 2

1.3 java循环结构

1.3.1 while循环

  • 基本结构
while( 布尔表达式 ) {
  //循环内容
}
  • 只要布尔表达式为 true,循环就会一直执行下去。

1.3.2 do…while 循环

  • 基本结构
do {
       //代码语句
}while(布尔表达式);
  • 对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

    do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。

  • 注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

1.3.3 for循环

  • 基本结构
for(初始化; 布尔表达式; 更新) {
    //代码语句
}
  • 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。执行一次循环后,更新循环控制变量。再次检测布尔表达式。循环执行上面的过程。

1.4 java条件语句

1.4.1 if...else条件语句

  • if 基本结构
if(布尔表达式)
{
   //如果布尔表达式为true将执行的语句
}
  • if...else 基本结构
if(布尔表达式){
   //如果布尔表达式的值为true
}else{
   //如果布尔表达式的值为false
}
  • if...else if...else 基本结构
if(布尔表达式 1){
   //如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
   //如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
   //如果布尔表达式 3的值为true执行代码
}else {
   //如果以上布尔表达式都不为true执行代码
}

1.4.2 switch case 语句

  • 基本结构
switch(expression){
    case value :
       //语句
       break; //可选
    case value :
       //语句
       break; //可选
    //你可以有任意数量的case语句
    default : //可选
       //语句
}

1.5 注意事项

  • 大小写敏感:java区分大小写,标识符的大小写不同意味着标识符不同
  • 类名:对于所以类名来说,类名的首字母应该大写。如果类名由多个单词组成,那么每个单词的首字母都应该大写,例如HelloWorld
  • 方法名:所有的方法名都应该以小写字母开头。如果方法名含有若干单词,则后面的每个单词首字母大写。
  • 源文件名:源文件名必须和类名相同。当保存文件的时候,你应该使用类名作为文件名保存(切记 Java 是大小写敏感的),文件名的后缀为 .java。(如果文件名和类名不相同则会导致编译错误)。
  • 主方法入口:所有的 Java 程序由 public static void main(String[] args) 方法开始执行。
    • public static void main( String[] args)
    • 访问修饰符 关键字 返回类型 方法名 String类 字符串数组
  • 空行:空白行或者有注释的行,Java 编译器都会忽略掉。
  • Nospelling:不要使用中文和中文拼音做标识符,属于有点low
posted @   曦月宇望  阅读(68)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示