Java基础记录(一)

注:此博客为看B老师Java视频时做的随笔记录
  1. Java跨平台由于Java在不同操作系统有不同的JVM(虚拟机)
  2. JDK(Java开发工具包) = 开发工具+JRE(Java运行环境)
  3. 此配置方式只在当前dos窗口有效,窗口关闭则配置消失
  • 环境变量临时配置方式:dos命令中的set命令
	- set : 用于查看本机所有环境变量信息
	-  set 变量名 : 查看具体一个环境变量的值
	- set 变量名= : 清空一个环境变量的值
	- set 变量名=具体值 : 给指定变量定义具体值
  • 在原有环境变量值基础上添加新值
	① 通过%变量名%操作符获取到原有环境变量的值。
	② 加上新值后在定义给该变量名
	 如给path环境变量加入新值:
	 set path = 新值;%path%
  1. 环境变量中%JAVA_HOME%:动态获取名称为JAVA_HOME环境变量的值
  2. Java中常量的分类:
    • 整数常量。所有整数
    • 小数常量。所有小数
    • 布尔(boolean)型常量。较为特有,只有两个数值。true false。
    • 字符常量。将一个数字字母或者符号用单引号( ’ ’ )标识(注意:'12’不是字符类型,'1’是字符类型)
    • 字符串常量。将一个或者多个字符用双引号(“ ”)标识(注意:"1"是字符串类型)
    • null常量。只有一个数值就是:null
  3. 进制转化
  • 八进制以0开头,十六进制以0x开头)
  • 二进制、十进制相互转换:

在这里插入图片描述

  • 负数进制:
    在这里插入图片描述
  1. 定义变量格式: 数据类型 变量名 = 初始化值 ;
  • Java中数据类型:整数类型中所占字节数依次为 1,2,4,8
    在这里插入图片描述
  • 定义long类型的数,对于过大的数,后面加字母’l’,如long l = 12345678900l ;
  • 变量名一般大写,如
	final double PI = 3.14;
  • Java中默认小数为double类型,后面加字母’f’可以表示单精度存储,如 float f = 2.3f ;
  • 强制类型转换格式:
	byte b = 3;
	b = (byte)(b+1);
	System.out.println("b="+b);
  1. 算术运算符
  • System.out.println(-2%5); //-2
  • System.out.println(2%-5); //2
  • a++和++a运算顺序:++与a谁在前先算谁
  • &与&&(短路与)的区别:
    在这里插入图片描述
  1. 位运算符
  • 一个数异或另一个数两次,结果还是这个数,如 6^ 3 ^ 3 = 6
  • 左移n相当于乘2的n次幂

在这里插入图片描述

  1. 三元运算符
  • 格式: (条件表达式)?表达式1:表达式2;
  • 如果条件为true,则执行表达式1,否则执行表达式2
  1. 使用notepad++运行java程序时,有时会出现如下错误
	if_test.java:21: 错误: 编码GBK的不可映射字符 System.out.println(day "瀵瑰簲")

在这里插入图片描述

原因分析:一般是因为代码(或者注释)中含有中文字符。而CMD运行Java程序的时候,系统默认的编码格式是gbk。而包含中文字符的代码一般是UNICODE格式,所以直接运行含有中文字符的代码就很容易出现编码错误
解决方法:

  • 方法一: 先将源文件全部剪切,接着将编码格式设置为“使用ANSI格式编码”,设置好之后再将源文件粘贴出来,保存再运行即可
  • 方法二:命令行的方式指定编码格式,如:javac -encoding UTF-8 Demo.java
  1. switch语句特点:
    • 答案的书写没有顺序
    • 匹配的答案被执行,一直执行到break结束或者执行到switch语句结束 ,下图为未加break的运行结果:
      在这里插入图片描述
  2. switch与if的区别:if 可以用于判断数值,也可以用于判断区间;switch可用于对固定的几个值进行判断,判断的值的类型有限
  3. break跳出指定循环:
    两个for循环分别用outer和inner标记,break后面加对应的标记名即可跳出指定循环
    在这里插入图片描述
  4. 函数的格式:
	修饰符  返回值类型  函数名(参数类型 形式参数1, 参数类型 形式参数2, ...)
	{
			执行语句;
			return 返回值;//return 关键字是用于结束该功能。并将后面的具体具体结构返回给调用者
			// return 必须有。但当函数返回值类型是void时,return 语句可以忽略不写,相当于return;
			// void表示没有返回值的情况
	}
  1. 函数重载(overload)
  • 概念:在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可
  • 特点:与返回值类型无关,只看参数列表
  • 好处:方便阅读,优化了程序设计
  • 示例:
    在这里插入图片描述
    在这里插入图片描述
  1. 函数在内存中调用过程

    • main函数入栈(压栈),调用add方法

    • add方法入栈(压栈),收到参数并进行运算
      在这里插入图片描述

    • 计算结果返回到main,add方法执行完毕,add方法出栈(弹栈),内存释放

  2. 数组

  • 概念:同一种类型数据的集合(容器)
(番外篇)容器特点:1.固定长度 2. 元素都有索引

  • 好处:可以自动给数组中元素从0开始编号,方便操作这些数组
  • 格式
  1. 元素类型[] 数组名 = new 元素类型[元素个数或数组长度] ;
    如:int[] arr = new int[5];

  2. 元素类型[] 数组名 = new 元素类型[] {元素, 元素, …}; 如:
    int[] arr = new int[] {3,5,1,7};
    int[] arr = {3,5,1,7};

  3. Java对内存空间划分为五部分:栈、堆、方法区、本地方法区、寄存器

    • 栈内存:存储都是局部变量。一旦变量的生命周期结束该变量就被释放
    • 堆内存: 存储都是实体(对象)// 凡是new创建的都在堆里面
      每一个实体都有一个首地址值
      堆内存的变量都有默认初始化值。不同类型不一样。int-0 double–0.0 boolean–false char-’\u0000’
      当实体不再使用时,就会被垃圾回收机制回收

22.数组的内存图解

  • int[] arr = new int[3]:局部变量arr位于栈中。堆中开辟空间(例如从从首地址0x0012开始开辟一块空间),创建数组实体,默认值为0,栈中arr(引用数据类型)指向堆中的数组(实现new int[3]赋值给arr)

在这里插入图片描述

  • new两个相同大小的数组:通过new分别在堆内存开辟两块不同的空间,栈内存中的arr与xxx分别指向两个空间
    在这里插入图片描述
  • 一个数组指向另一个数组:(注:此部分在图中用红色文字表示,图中的sop是System.out.println的简写)arr = xxx使arr断开原来的地址转而指向数组xxx的地址,故 System.out.println(arr[0]);结果为89

在这里插入图片描述

  1. 数组常见问题
  • 获取数组长度:arr.length
  • 两种常见错误:
    在这里插入图片描述
  1. 字符串和任何数据相加都是相连接, 如“1”+88=188

  2. 二维数组
    在这里插入图片描述
    内存图
    在这里插入图片描述

  3. Java13开始,字符串可以用"""…"""表示多行字符串,如

public class Demo{
	public static void main(String[] args){
		String s = """
					SELECT * FROM demo
					WHERE ID = 66
				   """;
		   System.out.println(s);
	}
}

  1. 字符串不可变,指的是字符串内容不可变,指向改变

下一篇:Java基础记录(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SimpleZihao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值