JavaSE基础复习

在这里插入图片描述

1.常用cmd命令

盘符切换

E:回车;即可切换到E盘
dir;查看路径下内容
cd;进入单级目录
cd…;回退上一级目录
cls;清屏

2.jdk和环境变量

jdk下载与安装

1.https://www.oracle.com/,访问网址
在这里插入图片描述
2.点product,点java
在这里插入图片描述
3.点下载java
在这里插入图片描述
4.默认就是最新版本,想想要下载旧的就点archive在这里插入图片描述
5.下载第2个就行
在这里插入图片描述
6.下完安装,安装路径不要有空格和中文
7.cmd中写java -version,出现版本,就安装jdk成功了,如果不成功,可能没配值环境变量,新版本jdk一般自动配置jpath,老版本需要自己配置

环境变量path和java_home

配置path方便在任意目录中启动程序,如何配置环境变量,网上很多了
java_home告诉了操作系统jdk安装在哪个位置,将来其他技术通过这个环境变量找到jdk,java_home无论新版旧版都需自己配置

Java开发环境的两个重要命令java和javac

java执行工具
javac编译工具,类似于翻译

Java程序开发三个步骤

1.编写代码,HelloWorld.java,源代码文件
2.编译代码,使用javac编译,生成字节码文件,编译完会生成class文件,HelloWorld.class
3.使用java运行文件

Java程序的执行原理

机器语言就是0101010101001,早期就用机器语言编程,之后又有了汇编语言,现在用高级语言,这些高级语言最终翻译成机器语言去执行

jdk的组成

jvm:Java虚拟机,真正运行java程序的地方
核心类库:java写好的程序,程序员给自己的程序调用
jre:java的运行环境,包括jvm和核心类库
jdk:java开发工具包,包括上面所有

jdk如何执行java程序

.java通过javac进行编译,产生.class文件,再通过Java把程序送到jvm里运行,然后可能需要调用核心类库的程序

java跨平台,工作原理

一次编译,处处可用,为什么能实现处处可用,是因为sun公司对于各大系统都写了jvm,运行程序仅仅需要安装jvm就可以了

3.IDEA

idea项目结构介绍

project工程–>module模块–>包–>类
比如淘宝网站就是一个工程,首页和购物车和订单就是模块

在这里插入图片描述
test1就是工程,study1就是模块,com.wfr.daotian就是包名,wfr1就是类名

idea字体等快捷键

file–>settings–>apperance–>theme,选择主题
file–>settings–>editor–>font,改字体
快捷键:
main/psvm可以快速产生main方法
输出的内容.sout可以写一个输出语句
ctrl+d,复制当前数据到下一行
ctrl+x,删除当前行
ctrl+alt+l,格式化代码

4.Java基础语法

1.注释

代码注释:
1.//qwswq
2./*
dsdsa
*/

文档注释:
/**
sdsadsa
*/

2.字面量

字面量就是告诉程序员:数据在程序中的书写格式
在这里插入图片描述

3.变量

变量就是存储一个数据的内存区域,且里面的数据可变化
定义的格式
数据类型 变量名称 = 初始值;首字母建议小写
在这里插入图片描述

变量在计算机的底层原理

数据在计算机用二进制表示,计算机的最小单位一个字节B,由8位b组成
字符在计算机用ASCII码表示
图片由无数个像素点组成,计算机存储着这些像素点
声音通过二进制储存

4.数据类型

在这里插入图片描述

5.关键字

在这里插入图片描述

6.标识符

在这里插入图片描述

7.类型转换

自动类型转换

类型范围小的变量,可以直接赋值给范围大的变量
在这里插入图片描述

表达式的自动类型转换

在这里插入图片描述

强制类型转换

强制类型转换就是大范围的数据强制赋给小范围的数据
在这里插入图片描述
在这里插入图片描述

8.运算符

基本算数运算符

在这里插入图片描述

+符号做连接符

在这里插入图片描述

自增自减运算符

在这里插入图片描述

赋值运算符

在这里插入图片描述

关系运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

三元运算符

在这里插入图片描述

键盘输入技术

在这里插入图片描述
在这里插入图片描述

9.程序流程控制

1.分支结构

if

根据判定的结果决定某个分支的代码
在这里插入图片描述

switch

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.循环结构

for

在这里插入图片描述

while

在这里插入图片描述

do-while

在这里插入图片描述
####三种循环的区别
在这里插入图片描述

break和continue

在这里插入图片描述

随机数random

在这里插入图片描述
在这里插入图片描述
减加法:先减一,生成0–>9的范围,可以用r.nextInt表示,然后加1就可表示0–>10
在这里插入图片描述
同样的,先减65,会变成0–>26,用r.nextInt表示,然后+65,就行了

10.数组

在这里插入图片描述

1.数组定义

静态初始化数组

定义数组直接赋值
在这里插入图片描述
在这里插入图片描述

动态初始化数组

在这里插入图片描述

数组的区别

在这里插入图片描述

数组的默认值

在这里插入图片描述

2.数组遍历

在这里插入图片描述

3.数组内存图

java把内存分为以下五个部分在这里插入图片描述
文件在方法区,方法,数据在栈,对象在堆
在这里插入图片描述
先把类加载成class文件,放在方法区,然后把main方法放在栈内存运行,开辟一片区域叫a区域,并且加载一组数组变量,但是没有值,然后new出来的在堆,然后把地址赋给左边的数组进行存储最后根据存储的地址,找到右边位置进行赋值
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.Debug工具

在这里插入图片描述

11.方法

1.方法的定义

在这里插入图片描述
在这里插入图片描述

2.方法的内存原理

在这里插入图片描述
把class文件放在方法区,先执行main方法放在栈中,执行第一行代码,然后把add方法加在栈中,把数据传给a,b,然后运行完代码把c返回到main方法,add方法退出栈,然后输出值
在这里插入图片描述

3.方法的参数传递机制

1.基本类型的参数传递

在这里插入图片描述
执行main方法,把10传给change里的a,然后把形参的a改成20,运行完main的a还是10
在这里插入图片描述

2.引用类型的参数传递

虽然传递机制是值传递,对于基本类型传的就是数,而对于引用数据类型,比如数组,传递的值就是地址,那么就好理解了,方法传的是地址,如果函数改变了堆内存的中的数据,那么主函数的地址指向的数据的值就会发生改变
在这里插入图片描述
在这里插入图片描述

4.方法重载

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.return

任何方法,有返回无返回都可以,比如a/b,可以设置一个if判断,当b==0,return;
在这里插入图片描述

12.面向对象

1.类和对象

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.对象在内存中的运行机制

先执行test类加载到方法区,然后执行main方法加载到栈,然后执行car类加载到方法区,然后定义car1在栈内,在堆中new出一个内存存储一些name和price信息和成员方法的引用地址,然后把堆内地址赋给左边栈从c1,然后就改数据
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.构造器

在这里插入图片描述
在这里插入图片描述

4.this关键字

this指向就是c的的值,也就是new对象的地址
在这里插入图片描述
不加this会使这个构造器丧失作用,this就是指向的那个对象,这样就可以给对象赋值
在这里插入图片描述

5.封装

在这里插入图片描述

在这里插入图片描述

6.javabean

在这里插入图片描述

7.成员变量和默认变量

在这里插入图片描述

13.String

在这里插入图片描述
业务场景
在这里插入图片描述

1.string概述及其原理

在这里插入图片描述
](https://img-blog.csdnimg.cn/0e152ff08ac243bc845d15a252615eac.png)
在这里插入图片描述
在这里插入图片描述
方式2基本常用的以下四个

        String s1 = new String();//无效果
        String s2 = new String("wfr");//wfr
        char[] chars = {'a','b','c'};
        String s3 = new String(chars);//abc
        byte[] bytes = {1,2,3,4,5};
        String s4 = new String(bytes);//12345
        

两者的区别
在这里插入图片描述
在这里插入图片描述

2.string常见面试题

在这里插入图片描述
在这里插入图片描述
上图分析,就是s1一定指向那个常量池,s3经过拼接一定指向堆内存的某个位置,也就是说,双引号的指向常量池,而其他的一定没有指向常量池对于上图而言;第二个编译器有点强,字面量abc已经知道了,就在编译的时候转成了,要不然在运行的时候要开辟很多对象,浪费性能

3.string常用api

在这里插入图片描述

        String a = "qwer";
        String b = "QWER";
        System.out.println(a.equals(b));//false
        //忽略大小写
        System.out.println(a.equalsIgnoreCase(b));//true

//1.长度
        String name = "内京东方牛筋丸";
        System.out.println(name.length());//7
        //2.获取某个索引的字符,利用for循环可便利每个字符
        char c = name.charAt(1);//数字代表索引下表
        System.out.println(c);//京
        //3.把字符串转化为字符数组,同样利用for便利
        char[] chars = name.toCharArray();
        System.out.println(chars[2]);//东
        //4.截取内容,包前不包后
        System.out.println(name.substring(2,5));//东方牛,也就是后面那个没有
        //5.截取内容,只写一个就行,从前截取到尾
        System.out.println(name.substring(3));//方牛筋丸
        //6.替换
        System.out.println(name.replace("内京", "***"));//***东方牛筋丸
        //7.判断文本是否有字段
        System.out.println(name.contains("东方"));//true
        //8.判断以啥开始
        System.out.println(name.startsWith("内京"));//true
        System.out.println(name.startsWith("京"));//false

4.string案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

14.ArrayList

1.arraylist的快速入门

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.arraylist对于范型的集合

因为必须存储引用类型,所以是integer而不是int
在这里插入图片描述
在这里插入图片描述

3.ArrayList的常用api

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值