- 博客(27)
- 收藏
- 关注
原创 相信这里囊括了你初学Java时见过的所有细节易错点(6万字建议收藏)
java语言的重要特性:跨平台 (平台: 操作系统)跨平台: 一次编译,到处运行。其跨平台特性的关键就在与java虚拟机(JVM)。java源码通过编译产生class文件,再通过JVM解释class文件的信息,然后发出命令给相应的(操作系统)去执行相应的操作,从而达到了一次编译(编译成class文件),到处运行。一张图了解jdk、jre、jvm三者间的关系:关于安装jdk后配置环境变量的原因:我们在安装完后大家都知道要配置环境变量,但是却不知道为什么要这么做,那究竟是为什....
2024-01-27 21:03:55
1083
1
原创 正则表达式其实很简单,带你学会它
正则表达式:正则表达式是用于操作字符串的一些规则,使用一些特殊的符号代表了字符串的规则。用处:可用于对一些字符串校正语法规则:/* 预定义字符类 . 任何字符(与行结束符可能匹配也可能不匹配) \d 数字:0-9 \D 非数字: ^0-9 \s 空白字符: \t\n\x0B\f\r空格 \S 非空白字符:^\s \w 单词字符:a-zA-Z_0-9 a-z A-Z 0-9 _ \W .
2021-11-01 18:45:00
510
6
原创 一道你不会的题
话不多说,先上题:看到标题心里就想,事情肯定没那么简单,但答案是什么呢?又为什么呢?这里的输出结果分别是true 、 false想要知道原因,让我们先看一下Integer包装类里面到底有啥?从图中可以看出,在Integer中维护了一个静态数组,该数组中存了一些常用的数据(-128~127)当我们创建一个Integer对象时,如果数据在-128~127这个范围内,那么直接从这个数组中获取而不会创建对象,这样的目的是把一些常用的数据事先共享这样就可以避免创建太多的对象而浪费内存。.
2021-10-31 21:00:00
151
5
原创 HashMap超精简——快速回顾
HashMap底层使用了哈希表去实现。存储位置是根据键的哈希码算出来的。HashMap的存储原理:如果根据键的哈希码算出的位置目前没有任何元素存储,那么直接添加到该位置,但如果该位置已有其他元素则会再调用equals方法,如果返回的是true,则不能存储,如果是false,则可以存。这个跟那个单列集合的HashSet基本一致。...
2021-10-31 09:01:06
100
原创 泛型及Map的三种遍历方法
泛型:泛型的好处:1.把运行时出现的问题提前至编译。2.避免了取出数据时无谓的强制类型转换(因为存入时不加泛型的话是用Object类型接收的,取出时也是Object类)泛型需要注意的:1.两边的数据类型必须一样或者只写一边,最好两边都写上一样的数据类型。2.泛型中是不能使用基本数据类型的,如果要使用基本数据类型,那么必须使用该基本数据类型的包装类。自定义泛型:相当于一个数据类型变量或者是一个数据类型占位符。函数自定义泛型要注意的:1.函数上自定义泛型的数据类型,是在调用该函数的时候
2021-10-30 21:03:28
394
2
原创 既然还没睡,那就进来再学点东西助眠吧——关于导包你真的理解对了吗?
一个常见的错误理解:导包会把那个导入包的类加载到内存中。用通配符*导入太多不需要的类的话会导致运行慢。实际上,只有当某个类被使用时才会加载到内存中。为验证上面是错的,可以通过在导入的类中加入静态代码块,因为静态代码块是在类加载到内存时执行一次,所以在此可利用这一点来进行验证,验证方法见下图。导包时不建议使用通配符的原因:使的代码结构更加清晰,即使当导入多个包时很容易就能看出导入的类来自哪个包。如有什么写的不对的地方欢迎大家指正,如果觉得有所收获,希望大家能够点赞支持下哦。以下赠送一张
2021-10-27 00:18:23
146
7
原创 关于新手习惯性定义数组不给出数组大小易造成的错误
在初学的时候学到定义数组时可以不用给出元素的个数,但这样的习惯也往往会带来一些问题。以下就是一个简单的例子:int main(){ int arr[] = {0}; int i = 0; for(i=0;i<10;i++) { arr[i] = i; } return 0;}上面这段代码的错误就在于初始化时没有给出所需存放的元素个数,而因为数组初始化如果不给出元素个数的话,就会把初次定义的数组里元素的个数当成这个数组所能存放的元素个数。所以上面代码中的arr数组只能存
2021-09-27 11:52:46
774
6
原创 大家这个点都还没睡吧| getchar的返回值为啥用int类型变量接收
先看一段代码#include<stdio.h>int main(){ int ch = getchar(); return 0;}起初看到,感觉是非常奇怪,但查了一下发现其返回值就是int类型,整型的话一般字符的ascll码用char类型其实也是能存下的,但是那只是在读取成功的情况下在下面图中可以看到,如果读取失败的话返回值则为EOF,而EOF为-1,用char类型就会存不下-1的补码,故用int类型的变量来接收getchar的内容对编程感兴趣的我却没有ge.
2021-09-26 23:54:19
1106
1
原创 第一次了解输入缓冲区
错误代码#include<stdio.h>int main(){ char password[20] = {0}; char ch = 0; printf("请输入密码:"); scanf("%s",password); printf("确认:Y/放弃:N,请选择:(Y/N)"); ch = getchar(); if(ch == 'Y') { printf("确认成功\n"); } else { printf("放弃确认\n"); } return
2021-09-20 11:16:42
142
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人