JavaSE-入门1

一、Java开始

JVM JRE JDK

image-20240113165900033

二、了解IDEA

结构

​ project - module - package - class

创建操作

​ new project / module / package / class

使用步骤

  • new project 同时 new module
  • module下 new 多个 package
  • package下new 多个 class
  • 在类中编写代码
  • 完成编译并运行

常用快捷键

快捷键功能效果
main/psvm , sout快速生成代码
ctrl + d复制当前一行
ctrl+ y删除所选行 , 当前行
ctrl+ x删除所选内容,当前行(推荐)
ctrl+ / 或 ctrl+ shift + /注释当前行或所选行
alt+shift+上下键上下移动当前代码
shift+F6更改变量名

导入模块

​ 最好是创建一个空模块,然后复制导入模块的src内容

删除模块

  • 1.选择remove该模块,再具体文件中删除
  • 2.项目中delete该模块,然后项目中**.idea**文件中的modules.xml删除模块代码,保存,然后重启idea

debug工具

三、基础语法

1.关键字与标识符

​ 关键字:不能用作类名或者变量名称

​ 标识符: 数字、字母、下划线、美元等符号组成,数字不能开头

2.数据类型

image-20240113174317462

类型转换

​ 从小到大:自动转换

​ 从大到小: 强制类型转换

​ 注意:可能导致数据丢失 , 浮点型转整型直接丢掉小数部分

int a = 1000;
byte b = (byte)a;

3.运算符

基本运算符

​ 加号做连接符,能算则算,不能算就在一起

赋值运算符

image-20240113175807909

逻辑运算符

image-20240113175958707

image-20240113180004187

三元运算符

int a = 2000 ;
int b = 0;
int c = a > b ? a : b;
System.out.println(c);

4.程序流程控制

​ 区间匹配 , if else

​ 特值匹配,switch - case - default

​ case后面是字面值(byte , short , int , char , String) 不能是变量 , 表达式不支持非精确值和long

​ 利用switch的穿透性!!合理使用break;

​ 循环 : while , do while , for

​ continue , break的区分

OUT使用

Random r = new Random();
Scanner sc = new Scanner(System.in);
int[] data = new int[3];
for (int i = 0; i < data.length; i++) {
    data[i] = r.nextInt(20)+1;
}
OUT:
while(true){
    System.out.println("请在输入1~20之间的数字,您的数字:");
    int guessData = sc.nextInt();
    //比对
    for (int i = 0; i < data.length; i++) {
        if (guessData == data[i]){
            System.out.println("恭喜你猜中了,您猜中的"+guessData+"索引为"+i);
            break OUT;
        }
    }
    System.out.println("很遗憾,你未猜中");
}

5.数组

​ 静态数组

​ 数据类型[] 数组名 = new 数组类型[] {元素1 , 元素2 , 元素3…};

​ 动态数组

​ 数据类型[] 数组名 = new 数组类型[长度];

数据类型明细默认值
byte、short、int、long、char0
基本类型float、double0.0
booleanfalse
引用类型类、接口、数组、Stringnull

数组内存图

image-20240113193035980

6.方法

格式

/** + enter 生成方法的注释格式

方法的修饰符 返回值类型 方法类型 (形参){

​ …

​ return ;

}

方法内存的调用原理

image-20240113193602145

值传递

  • 基本类型 , 参数传输存储的数据值

  • 引用类型 , 参数传输存储的地址值

重载

同一个类,方法名相同,形参列表不同(形参个数,类型,顺序)

return关键字

​ 可以立即跳出并结束当前方法的执行

四、面向对象

1.类和对象

​ 类:共同特征的描述;对象:真实存在的具体实例

如何设计类?

​ public class 类名 {

​ 1.成员变量(属性)

​ 2.成员方法(行为)

​ }

如何创建对象?

​ 类名 对象名 = new 类名();

如何访问对象的信息?

  • 对象.成员变量

  • 对象.成员方法

image-20240113195025622

构造器

​ 初始化一个对象,并放回对象的地址值 Car car = new Car()

​ 无参构造,有参构造

​ 默认无参构造存在,如果定义了有参构造,还想使用无参构造,必须定义无参构造;

this关键字

  • 可以出现在对象、方法中
  • 代表当前对象的地址
  • 可以用于指定访问当前对象的成员
public void play(String name){
    System.out.println(this.name+"正在与"+name+"抓鱼");
}

2.封装

image-20240113200113593

JavaBean实体类

  • 成员变量使用private修饰

  • 提供成员变量对应的setXxx() / getXxx()方法

  • 必须提供一个无参构造器,有参构造可写可不写

    便捷操作:右键选generate ,在选择setter和getter ,最后shift+选中最后一个有参构造器 generate ,然后选择Constructor

成员变量与局部变量

image-20240113200605907

3.String对象

  • String字符串类型,可以定义字符串变量指向字符串对象

  • String变量每次修改都是产生并指向新的字符串对象

  • 原来的字符串对象都是没有改变,所以称为不可变字符串

字符串常量池

​ 只有" "的才会放在字符串常量池中,其他任何形式都放在堆内存中, String str2 = str1 + “c”, 放在堆内存中

image-20240113201345507

创建字符串对象的方式

  • 方式一:String name = “name1”;

  • 方式二:

构造器说明
public String()创建一个空白字符串对象,不含任何内容
public String(String original)根据传入的字符串内容,来创建字符串对象
public String (char[] chs)根据字符数组的内容,来创建字符串的内容
public String(byte[] chs)根据字节数组的内容,来创建字符串对象

两种方式的区别

以""方式给出的字符串对象,在字符串常量池中存储,而且相同内容只会存储一份;

通过构造器new对象,每new一次,都会产生一个新的对象,放在堆内存中。

image-20240113203121185

String常用API

1.equals(Object o) return true or false ; equalsIgnoreCase(Object o)不区分大小写

String name1 = new String("Abc");
String name = "abc";
System.out.println(name.equals(name1));//false
System.out.println(name.equalsIgnoreCase(name1));//true

image-20240113204240945

name = "abc";
//1.length长度
System.out.println(name.length());      //3
//2.charAt(int index)获取某索引处的字符
System.out.println(name.charAt(0));     //a
//3.toCharArray()转化为字符数组
char[] chars = name.toCharArray();
for (char c : chars) {
    System.out.println(c);              //a b c
}
//4.subString(int beginIndex, int endIndex)
String subName = name.substring(1, 2);  //取左不取右 b
System.out.println(subName);
//5.subString(int index)
System.out.println(name.substring(1));  //bc
//6.replace(target,replacement)
name = name.replace('a', 'b');
System.out.println(name);               //bbc
//7.split(String regex)根据传入的规则,分隔字符串为数组
String[] sp = name.split("b");
System.out.println(Arrays.toString(sp)); //[, , c] Arrays.toString(sp)数组输出元素值

4.ArrayList集合

常用无参构造

List<Car> carList = new ArrayList<>();  //多态

泛型,数据类型约束(引用类型), ArrayList对应索引处存储对象地址

image-20240113205701042

List<Cat> carList = new ArrayList<>();
carList.add(new Cat("Tom",1));
carList.add(new Cat("Jerry2",2));
carList.add(new Cat("Jenny",1));
for (Cat cat : carList) {
    System.out.println(cat);
}
System.out.println(carList.get(1)); //Cat{name='Jerry2', age=2}
System.out.println(carList.size()); //3
System.out.println(carList.remove(1)); //Cat{name='Jerry2', age=2}
carList.set(0,new Cat("Jerry1",1));
System.out.println(carList);        //[Cat{name='Jerry1', age=1}, Cat{name='Jenny', age=1}]
Api学习

1.Scanner 实现键盘录入功能

Scanner sc = new Scanner(System.in);
System.out.println("请输入您的账号:");
String username = sc.nextLine();
System.out.println("请输入您的密码:");
String password = sc.nextLine();
System.out.println("您的账号:"+username + "您的密码:"+password);
  1. Random 随机数
Random r = new Random();
//打印随机101~120
System.out.println(101+r.nextInt(20));

=1}]




#### Api学习

1.Scanner 实现键盘录入功能

```java
Scanner sc = new Scanner(System.in);
System.out.println("请输入您的账号:");
String username = sc.nextLine();
System.out.println("请输入您的密码:");
String password = sc.nextLine();
System.out.println("您的账号:"+username + "您的密码:"+password);
  1. Random 随机数
Random r = new Random();
//打印随机101~120
System.out.println(101+r.nextInt(20));
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值