![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
遇到问题多问自己一个为什么?
小师兄.
语言学习开发路上的一个初学者。
展开
-
内存溢出的解决思路
内存溢出是指应用系统中存在无法回收的内存或使用的内存过多,最终使得程序运行要用到的内存大于虚拟机能提供的最大内存。 引起内存溢出的原因有很多种,常见的有以下几种: 1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据; 2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收; 3.代码中存在死循环或循环产生过多重复的对象实体; 4.使用的第三方软件中的BUG; 5.启动参数内存值设定的过小;内存溢出的解决方案: 第一步,修改JVM启动参数,直接增加内存...转载 2020-11-23 17:37:46 · 5445 阅读 · 0 评论 -
为什么并发时使用LinkedBlockingQueue?和ArrayBlockingQueue区别?
1、首先LinkedBlockingQueue是线程安全的阻塞队列。2、LinkedBlockingQueue的优点是锁分离,很适合生产和消费频率差不多的场景,这样生产和消费互不干涉的执行,能达到不错的效率,尽量不使用remove操作,获取两把锁的效率更低,可以使用size方法(就是计数器直接返回),这个还是比较重要的,有些集合不适合使用size,例如ConcurrentLinkedQueue,...原创 2019-04-24 14:10:25 · 12618 阅读 · 2 评论 -
什么是序列化和反序列化 什么是串行化和并行化?
当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上传送。发送方需要把这个对象转换为字节序列,才能在网络上传送;接收方则需要把字节序列再恢复为对象。 1、把对象转换为字节序列的过程称为对象的序列化。 2、把字节序列恢复为对象的过程称为对象的反序列化。序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象...转载 2019-04-24 16:06:36 · 1874 阅读 · 0 评论 -
Connection reset by peer的常见原因及解决办法
1,如果一端的Socket被关闭(或主动关闭,或因为异常退出而 引起的关闭),另一端仍发送数据,发送的第一个数据包引发该异常(Connect reset by peer)。Socket默认连接60秒,60秒之内没有进行心跳交互,即读写数据,就会自动关闭连接。2,一端退出,但退出时并未关闭该连接,另一端如果在从连接中读数据则抛出该异常(Connection reset)。简单的说就是在连...转载 2019-07-19 11:21:32 · 98565 阅读 · 2 评论 -
为什么JAVA内部类设计成静态和非静态呢?
在哪儿遇到这个问题的?在restful请求中数据多重包含的情况下,我使用了这个静态内部类,本来没有太多的考虑,但是这个时候老大问了我为什么?我愣了一下,只说了这个静态内部类只给当前类使用,外部类无法访问。老大笑着说,你好好看看。 今天把问题在重新整理一下,为什么要使用静态内部类呢?(1)首先第一个问题,为什么使用内部类?解释:第一、类内部的某个属性涉及比...原创 2019-04-09 18:16:50 · 878 阅读 · 0 评论 -
日常使用linux命令,它们具体含义是什么?
命令缩写:ls:list(列出目录内容)cd:Change Directory(改变目录)su:switch user切换用户rpm:redhat package manager红帽子打包管理器pwd:print work directory打印当前目录 显示出当前工作目录的绝对路径ps: process status(进程状态,类似于windows的任务管理器)常用参...转载 2019-04-10 09:15:53 · 372 阅读 · 0 评论 -
为什么使用注解@SuppressWarnings("unchecked")?
1、首先了解注解 @SuppressWarnings("unchecked"):解释:抑制编译器产生的警告信息(1)抑制单类型警告:(在强制类型转换的时候编译器会给出警告)@SuppressWarnings("unchecked")(2)抑制多类型警告:@SuppressWarnings(value={"unchecked", "rawtypes"})(3)抑制所有类型...原创 2019-04-10 09:30:17 · 1521 阅读 · 0 评论 -
postMapping为什么使用consumes/produces?
1、 value, method;value: 指定请求的实际地址,指定的地址可以是URI Template 模式(后面将会说明);method: 指定请求的method类型, GET、POST、PUT、DELETE等;2、 consumes,produces;consumes: 指定处理请求的提交内容类型(Content-Type),例如application/j...原创 2019-04-16 19:42:46 · 21815 阅读 · 0 评论 -
为什么16进制字符串不可以直接Integer.parseInt()转换?
16进制字符串不可以直接用Integer.parseInt()转换,字符串“00”和“FF”还好,但是若为“1A”,这样转换必然出错!附16进制转10进制: // 16进制转10进制 public static int HexToInt(String strHex) { int nResult = 0; if (!IsHex(strHex)) return nResult...原创 2019-04-17 10:09:23 · 3639 阅读 · 5 评论 -
为什么java类设计成abstract类,和C++有什么区别?
java和C++的区别,它只有抽象类的概念,没有虚函数的概念,尽管两者很相似。java类设计成abstract类,抽象类中的所有protected保护成员,继承的子类都可以直接使用,不需要实例化调用或者创建。特点:(1)Java抽象函数必须在抽象类中,同时它不能有函数体(2)抽象方法由子类实现,抽象类不能实例化。(3)若子类实现抽象类方法后,不想被其他子类继承则可以在class...原创 2019-04-17 11:22:04 · 313 阅读 · 0 评论 -
为什么long,int和Integer,Long不能直接转换?
今天测试遇到一个异常,检查半天没有找到问题所在,最后将IOException改为Exception终于把异常捕捉到了,问题就是:无法将long转化为Integer看起来只是一个不起眼的问题,但是真正检查却花了半小时,尴尬(1)首先基本数据类型之间可以强转,如long,int(2)对象类数据类型,如Integer,String, Long,这个时候基本数据类型和对象数据类型之间的转换...原创 2019-04-04 13:26:40 · 10889 阅读 · 1 评论