- 博客(121)
- 收藏
- 关注
原创 mac终端出现:Could not set environment: 150: Operation not permitted while System Integrity Protection is
mac终端出现:Could not set environment: 150: Operation not permitted while System Integrity Protection is engaged,这个错误是因为在macOS系统中,System Integrity Protection (SIP) 被启用了。只要把sip关了就行了,m系列芯片先关机,再一直按住开机键进入恢复模式,在最上方有个地方可以进入终端,输入:csrutil disable 就可以关闭sip了。
2024-04-16 21:56:26 8841 1
原创 mysql中,char与varchar的区别
就是你size指定的大小是多少,无论你实际存放了多少个字符,系统都会分配size*编码格式的单个字符所占的最大字节数,解释:比如size设置为10,编码格式是utf8,实际存放了1个字符,那么所占的空间和你存放的实际字符个数无关,所占的字节数是10*3,这个3就是utf8编码下,汉字是单个字符中所占字节数最大的,占3个字节,所以就是10*3 = 30个字节;比如编码是utf8,那么实际可以指定的长度是65532(2^16 -1 -3)/3 = 21844。
2023-06-07 18:01:12 224
原创 通过反射修改私有属性和调用私有方法
因为static的属性和方法不属于对象而是属于类的,当然,传入一个对象也是可以的,因为用对象也是可以访问static属性和static方法的。在method.invoke(obj,实参列表)这里,obj也可以是null。field.set(o,修改值)这里,o可以是null。如果属性和方法是static的,那在。
2023-06-04 15:46:37 494
原创 java配置文件properties
load的作用是加载配置文件,传入一个输入流对象是将指定路径下面的配置文件读取到properties对象,这样就可以通过properties对象获取到配置文件中的键值对信息。配置文件的作用在于:通过修改配置文件来修改应用程序,而不必修改源代码,提高代码的可扩展性。注意:指定配置文件路径可以是src下面的路径,也可以是磁盘其他路径,还可以是网络等。java配置文件已文件名.properties命名,配置文件里面存放的是键值对。
2023-06-03 09:15:51 166
原创 TCP网络编程入门
1.如果是以字符流来写入文件到网络通道,在写入完成后需要手动刷新流,用flush() ,并且在写入完毕后需要明示写入已经完成,不然陈序会阻塞,如果是字符流,并且是Buffered,可以用newLine()表示写入已经完成,如果不是的话可以用socket.shudownOutputStream()来明示。2.全部操作结束记得close流和socket,如果不关闭socket,则其他主机无法接入到该接口。
2023-05-28 17:07:02 69
原创 转换流InputStreaReader和OutputStreaWriter的作用解析
如果是用InputStream的read方法,一次就只能读取一个字节,如果是英文,倒没什么影响,因为英文只占1个字节,但是如果是中文的话,占3个字节,read方法并不会将这3个字节合起来解析为一个中文,而是将他们分开解析,那就会造成乱码。OutputStreamWriter也是一样的道理,传入的是一个OutputStream的对象,也可以指定编码格式,使用writer方法时,可以按照指定的编码写入一个字符串,实际干活的还是传入的OutputStream字节流对象。
2023-05-26 21:34:39 190
原创 java write方法写入文件的方式
1.创建一个OutPutStream对象,把文件地址传入,如果该文件不存在,则将该文件新建再写入,传入的true表示是进行追加,不加true每次写入文件会把原文件覆盖。3.可以在后面设置写入的字符串的起始位置和写入长度,如图就是总字符串(本质是byte数组)的下标为0的元素开始写入,写入5个(注意长度不能超出范围)(3)传入一个字符串,如图,实际还是传入一个byte数组,因为要将String转换成byte数组再传入。(1)传入一个char,或者int(二者可以相互转换)2.调用write方法。
2023-05-22 19:16:09 1157
原创 用java打开文件
2.Desktop.getDesktop方法得到一个Desktop对象(Desktop构造器是私有的,不能直接new)3.用Desktop里的open方法就可以打开对应文件。1.创建一个File对象,将文件地址传入。注意:确保你的电脑有能打开该类型文件的软件。
2023-05-22 13:19:24 400
原创 java线程死锁
A线程获取到o1锁,B线程获取到o2锁,A线程要继续执行需要获取o2锁,但o2锁正被B线程持有,B线程要想继续往下执行需要获取到o1锁,但是o1锁正被A线程持有,这样两个线程就会僵持不下,就造成了死锁。将A线程的flag设置为true,则进入if语句,将B的flag设置为false,则进入else语句,一直这样僵持,不会结束。
2023-05-18 16:38:45 54
原创 C++继承创建对象的方法辨析
用new的方式得到的是指向T对象的一个指针,所以用*t指针来接收。也可以用父类来接收,仍然,这样子接收就不能调用子类特有的方法。TT来接收,但是这样子接收了就不能访问到子类特有的方法。调用方法是要用 ‘ ->’ 来调用。有一个类T继承了TT。
2023-05-16 17:00:53 78
原创 java实现扫雷游戏(简单版)
用两个一模一样的数组,这样下标就可以对应,玩家输入map上的坐标,同时也对应mineMap上的坐标,就可以判断这个位置有没有雷。第二个数组是mineMap,用来装地雷,随机给他赋ROW(行数)个雷,“0”表示非雷,“1”表示雷。利用两个String的二维数组,一个是map,用来制作地图,用*表示被隐藏。因为你既要用*来表示地图,又要装地雷,一个数组是搞不定的。第0行和第0列是坐标。为什么要用两个数组?
2023-05-12 14:10:37 226
原创 java泛型通配符
通配符有三种:第一种: 问号(?),表示所有类型第二种:extends + 类名 ,表示该类及继承了该类的类型第三种:super + 类名, 表示该类和该类的父类。
2023-05-11 13:37:04 1142
原创 自定义泛型方法
泛型优先局部,在全局:比如说我在类定义了E,R两个泛型,又在方法show上定义了E,R两个泛型,则在show方法中优先使用自己方法上定义的泛型。定义形式如下:方法中定义了泛型,一般都会在形参用到定义的泛型。自定义泛型方法可以在普通类里面,也可以在泛型类里面。
2023-05-11 09:20:02 101
原创 java默认方法
jdk8引入接口默认方法的目的是:解决以前当给一个接口添加一个新方法时,所有实现了该接口的类必须要重写这个新方法,而default方法(默认方法)的引入就可以在方法前加default关键字,这样实现了该接口的类就不必重写该方法,需要用到该新方法的类才重写这个方法。注意:default方法必须要有方法体。
2023-05-10 18:42:19 47
原创 java泛型
3.泛型属性不能在类中直接new,因为你不确定是什么类型,如果是自定义类类型,那构造器应该传入的数据是不确定的,所以无法直接new一个泛型对象。解释:定义了一个AA类,用T来表示一个不确定的类(接口)类型,类中的属性或者方法可以使用这个泛型,在new AA对象时再来给T确定一个类型。4.static方法不能使用泛型作为返回类型或者作为形参,因为static方法是与类相关的,而泛型是在创建对象时才确定的。就是在定义类或者接口时,用表示类型,在new一个对象时才指定一个具体的类型。
2023-05-10 15:43:47 38
原创 List、Set、Map的适用场景辨析
List接口下面有ArrayList、Vctor、LinkedListSet接口下面有HashSet、TreeSet、LinkedHashSetMap接口下面有HashMap、TreeMap、LinkedHashMap。
2023-05-08 11:14:14 419
原创 HashSet(HashMap)的扩容机制及红黑树简略梳理
2.在table表的数据量已经等于负载值(当前容量*负载系数),则会将table表扩容至当前容量的2倍,负载系数负载值也变为原负载值的两倍,如:初始容量为16,负载系数为0.75,那么负载值就是16*0.75 = 12,当添加完第12个元素后,就会立马进行扩容,容量扩容为32,负载值也变成24,以此类推;下次添加数据,如果又添加到了这条链表,就会将table表扩容至64,再次添加数据,如果又添加到了这条链表后面,或者其他链表使某条链表达到8个元素,就会将这条链表转成红黑树。
2023-05-06 14:57:00 864
原创 HashSet和HashMap内部结构分析
首先明确一点:HashSet的底层就是HashMapHashSet与HashMap的不同点:HashMap存储的是键值对(也就是key-value),即在调用HashMap的put方法时传入的两个值,而HashSet其实也是存储的键值对,但是键值对的value是一个默认值(PRESENT,一个Object的对象)HashSet的方法也只能将key取出,不能取出value,而HashMap就有方法能将value也取出既然说HashSet的底层是HashMap,那来看看源码:来看看HashSet的add方法源码
2023-05-06 14:16:59 735
原创 ArrayList ConcurrentModificationException异常
ArrayList ConcurrentModificationException异常
2023-05-01 12:59:40 80
原创 next(), nextLine(),nextInt()报错分析
辨析next,nextLine之间的区别,以及由next和nextLine和nextInt等造成的异常
2023-04-30 10:48:52 1483
原创 LocalDateTime以及DateTimeFormatter使用入门
第三代日期LocalDateFormatter的使用以及DateTimeFormatter格式化时间的使用及其规则
2023-04-30 09:23:31 212
原创 Calendar类
Calendar类没有public 构造器,所以不能直接new一个Calendar对象,而是要通过Calendar类中的一个public 的方法getInstance来获取一个对象。Calendar相较于Date和SimpleDateFormat来说是时间格式自由的更高,可以根据需求输出。YEAR,MONTH,DATE.....这些都是Calendar类中的final常量。得到calendar对象之后,通过调用get方法来并传入参数,来获取时间。引包:java.util.Calendar。
2023-04-29 21:17:26 42
原创 BigInteger和BigDecimal
当一个整数很大,大到long都无法保存,就可以使用BigInteger这个类使用方法:new如果要对bigInteger使用加减乘除,不能直接使用+ - * / ,而是要使用相应的方法+ : add()传入的值也是一个BigInteger对象。
2023-04-29 10:51:07 1038
原创 String与StringBuffer或者StringBuilder
【代码】String与StringBuffer或者StringBuilder。
2023-04-28 19:22:12 34
原创 StringBuffer练习题之价格添逗号
示例:字符串价格 12345.88 -----> 12,345.88。题目要求:将一个字符串的价格每三位之间添加一个逗号,并输出。代码实现:注意要考虑价格字符串中没有小数点的情况。
2023-04-27 19:57:39 125
原创 StringBuffer相关习题1
第一题:进入append方法源码,可知,如果append传入的是一个空指针,则append会将“null”这个字符串返回。第二题:进入StringBuffer的构造器可知,str.length()会出现空指针异常。
2023-04-27 19:34:27 53
原创 C++虚基类构造函数和析构函数调用顺序
1.构造函数调用顺序:先调用虚基类(Base)--> Base1/Base2(顺序取决于在声明Derived类时继承Base1和Base2的顺序),如果Base1在前,则先调用Base1的构造函数,再调用Base2的构造函数;最后调用Derived的构造函数。2.如果Derived类中有对象成员,则先调用虚基类(Base)--> Base1/Base2-->对象成员的构造函数--> Derived的构造函数。3.如果在同一层次中,则先调用虚基类的构造函数,再调用基类的构造函数。
2023-04-25 21:27:39 991
原创 c++ 虚基类(好理解)
当创建一个Derived对象时,先调用Base的构造器,此时a = a + 1,那就是11,再调用 Base1的构造器 a = a + 10, 此时a = 21, 再调用Base2的构造器, a = a + 20, 此时a = 41,所以Derived类中继承下来的a 就是41。如果Base类有一个public的 int a ,在Derived里面要访问这个a,就必须指定是哪个类的a(Base1或者Base2),那就得用作用域符::来指定。此时Derived类继承的a就只有一个,那这一个a是哪一个呢?
2023-04-25 21:06:11 422
原创 day 4.24 String 问题内存分析
执行到ch[0] = 'p' 时,因为change中的ch也指向“java”,所以“java”就变成了“pava”,因此egg对象中的ch也变成了“pava”;每调用一个函数,就会在栈区中创建一个该函数的区,调用change函数,则在栈区中创建了一个change区,这个change区中有传入的str对象,字符数组ch。当执行到str = ”haha“时,会在常量池中创建haha,change中的str指向常量池中的haha,main函数中的str对象的指向并不会改变。
2023-04-25 07:13:14 51
原创 day 4.24 String 相加相关问题习题
此时在常量池中只有一个对象,即”jacksmith“, name1 指向的是 常量池中的”jacksmith“对象。name1 先指向常量池中的“jack”,再在常量池中创建一个“smith”对象,name1再指向“smith”此时name3 指向的是堆中的一个对象,堆中的value数组指向常量池中的“jacksmith”字符串对象。并不是将jack修改为smith。
2023-04-24 09:19:27 49
空空如也
java算法:分类相关问题
2023-07-03
java网络编程相关问题
2023-05-31
javaIO流相关问题
2023-05-23
关于#java#的问题:java算法题
2023-05-06
javaHashMap红黑树条件问题
2023-05-06
java匿名内部类相关问题
2023-05-06
HashMap键值对类型
2023-05-05
HashSet与LinkedList的区别?
2023-05-05
javaHashSet存储顺序问题
2023-05-04
javaArrayList的扩容机制问题
2023-05-01
javaString存储方式
2023-05-01
关于#java#的问题:为什么向下转型不能直接调用方法
2023-04-29
java字符串创建关于hashcode的问题
2023-04-23
自动装箱为什么要分两个部分来操作
2023-04-23
关于#java自定义异常类#的问题,如何解决?
2023-04-22
关于#java#的问题:会一直输出again,不会在scanner处停止让我输入一个值
2023-04-21
用const修饰对象报错
2023-04-17
为什么new一个内部类失败(语言-java)
2023-04-14
java为什么成员内部类B中的private变量b能在类外被访问
2023-04-14
将成员函数作为友元函数只能在类外定义吗
2023-04-14
java interface 与 继承
2023-04-09
为什么公共的属性和方法在同一个包下面还不能访问了呢
2023-04-08
java静态方法是在什么时候加载呢
2023-04-08
c++ 为什么第一个不需要const 修饰而第二个必须要const 修饰呢
2023-04-07
java静态方法与静态变量
2023-04-05
关于#c++#的问题,如何解决?
2023-04-04
java如何实现给函数传入一个变量,并能且能改变这个变量的值
2023-04-04
java var快捷方式
2023-04-01
为什么只有第一个是true 后面两个都是false
2023-04-01
在java中数字也算是一个类吗
2023-04-01
关于#c++拷贝构造函数#的问题:这里returnA 这个函数返回是就已经调用了拷贝构造函数,那我再将aa这个对象赋值给bb,应该还要再调用拷贝构造函数,但是我输出bb.a还是2
2023-03-29
论程序员的未来前景,前端后端
2023-03-23
如何在java中,定义一个变量 int a?
2023-03-20
关于#java#的问题:java中变量名有地址吗
2023-03-20
关于#java#的问题:专业网络工程,对网络没什么兴趣,我是应该转专业到计算机科学与技术或者软件工程,到是都属于计算机专业,但是我怕后面网络方面的知识任务太多占用太多时间,编程的时间就被挤压了
2023-03-16
c++ cin.read
2023-03-11
c++ cout怎么输出空格
2023-03-10
string arr 和char arr[]
2023-03-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人