- 博客(17)
- 问答 (3)
- 收藏
- 关注
原创 头文件与类声明
C++:数据是私有的。数据和函数包在一起。(1)头文件 (2)主程序 (3)标准库。include 系统能找到的用C++ class的分类。
2023-03-22 09:38:38 44
原创 DAO/Controller/Service
理解JavaWeb中,总是提到的三层:DAO/Controller/Service。DAO:面向表封装的数据访问层。Service:面向业务封装的服务层。Controller:接收页面传来的请求,转发给Service。Service处理后,再把返回值给回Controller,Controller传给页面。开发流程:1.分析需求设计数据库表;2.对每个表开发一个DAO层;3.将多个DAO层整合在一块,形成一个Service层;4.开发Controller层。和Service层通
2020-06-22 13:31:16 187
原创 Servlet再回首
研究javaweb快一个月了,还是个小白,跟着搭框架,跟着做项目。里面有个Servlet一直写,却一直模模糊糊不了解。今天拎它出来瞅瞅。1.啥是ServletServlet就是一段跑在服务器上的程序,用java写的。主要功能是交互式的浏览和生成数据,生成动态web。啥是动态web?说到动态web,与其对应的就是静态web。静态web:打死都不变的,你我他看到的都一样;动态web:根据浏览的内容,动态生成出来的,你我他可能看到的不一样。比如你搜索爸爸,看到了我;我搜索儿子,看到的可能是您。
2020-06-18 16:46:58 157
原创 深拷贝浅拷贝
学习C++和Java,一直对深拷贝/浅拷贝迷糊。今天咱就整明白它。啥是浅拷贝?啥是深拷贝?看下面的代码。class Foo { private Bar myBar; ... public Foo shallowCopy() { Foo newFoo = new Foo(); newFoo.myBar = myBar; return newFoo; } public Foo deepCopy() { Foo newFoo = new Foo(
2020-06-09 16:34:59 104
原创 精神小伙儿探秘JVM( 八)
类加载认识了类文件,来研究最后一部分内容,类加载。类的声明周期加载验证准备解析初始化使用卸载其中,验证/准备/解析统称为连接。这样就是5个阶段,加载 、连接、初始化、使用、卸载。类加载中的加载过程加载作为类加载中的第一步,有点拗口。主要进行三步:1、获取类的二进制字节流;2、将二进制字节流中的静态结构,转化为方法区运行时数据结构;3、内存中创建一个代表该类的java.lang.Class对象,作为方法区访问这个类的入口。验证验证字节流中的信
2020-06-02 09:29:03 121
原创 精神小伙儿探秘JVM(七)
类文件结构类文件也就是有Javac编译器编译生成的.class文件,也叫字节码文件。它是JVM实际执行的文件。无论什么语言,只要能生成类文件,就可以在JVM上运行;而正是有了JVM的存在,可以将其部署在任意操作系统环境上,也就实现了跨平台,即平台无关性。Class文件结构Class文件,是一种二进制文件,里面全是0/1,没有空格。主要内容包括两种:无符号数、表。具体结构包括:魔数版本信息常量池访问标志类索引、父类索引、接口索引集合字段表集合方法表集合属性表集合
2020-06-02 09:01:42 121
原创 精神小伙儿探秘JVM( 六)
JVM调优连续研究了五篇,这次终于来到小高潮了,也是我最好奇的部分,JVM调优。作为Java小白,听到JVM调优不止一次。包括网上的视频,招聘岗位的要求等等,都会提到JVM调优。那么,JVM调优到底是啥?今天俺们就来瞅瞅。调优调啥呢JVM是Java虚拟机,是帮助字节码实际解释运行的东东。根据前面的探秘系列,不难看到,JVM这里头需要考虑的问题很多。主要就是对象的生成创建以及GC回收,新生代老年代的判定处理。其中的算法,处理机制的不同,会很大程度的影响JVM性能。而通过JVM对外提供的参数设置,可
2020-06-02 08:18:27 221
原创 精神小伙儿探秘JVM( 五)
对象内存分配与回收策略一个对象在内存中分配在堆上,堆区依照对象的生命周期,需要将不同生命周期的对象,分而治之。这样,一个对象的区域分配就需要讲究一定的策略。主要有以下几个方面:可着Eden先来Eden作为堆中最主要的部分,每次分配内存,都优先在其中进行分配。当然,如果Eden里没地方了咋办?别慌,没地方就先来波清理。这波清理可以有两种,Minor GC和Major GC/Full GC。其中,Minor GC回收新生代的对象,新生代活的不久,所以需要进行频繁回收,每次速度也非常快。Major G
2020-05-30 10:07:08 183
原创 精神小伙儿探秘JVM(四)
HotSpot如何回收垃圾HotSpot作为JVM中的大太子,对垃圾回收必定很有心得。今天咱们就来聊聊它是怎么处理垃圾的。垃圾分类上回咱们说过,JVM中的垃圾,按照存活时间不同,分为新生代和老年代。新生代垃圾...
2020-05-29 23:49:56 107
原创 精神小伙儿探秘JVM(三)
垃圾收集策略与算法大家好,精神小伙,探秘猎奇,极客精神,用不放弃!今天咱们来扒一扒Java里头的垃圾收集。垃圾分类,有你有我,全民环保,人人有责!没错,显示社会需要回收垃圾,清除垃圾,咱们JVM也是。那么,JVM中的垃圾都有啥?都是哪个倒霉孩子给制造的呢?垃圾都有啥这要从咱们探秘系列的第一章说起。JVM中分为程序计数器,Java栈,C栈,堆,方法区。可以看到,程序计数器和那两个栈,当方法执行结束后,申请的内存空间自动被回收,不会产生内存垃圾。唯有堆和方法区,一个存放对象,一个存放类信息,
2020-05-28 15:30:39 181
原创 精神小伙儿探秘JVM(二)
上回说到,JVM是个啥,里面的内存模型是怎样的。这次我们来研究HotSpot虚拟机。HotSpot虚拟机啥?这又是个啥?不是Java虚拟机么?咋又整出个HotSpot来?我读书少,别骗我。。。淡定,我也是小白。HotSpot VM,其实Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。所以,这玩意就是JVM中的一种。对象的内存布局分为三块区域对象头(Header) 实例数据(Instance Data) 对齐填充(Paddi
2020-05-28 13:50:34 128
原创 精神小伙儿探秘JVM(一)
JVM是什么?JAVA Virtual Machine,即Java虚拟机。传说Java是可以跨平台的,为啥这么牛?这就要归功于JVM的功劳。Java程序只需要被编译成字节码,即.class文件,通过字节码就可以在虚拟机上运行。这样,不管你的操作系统是啥,只要安装了JVM,Java程序都能畅通无阻的运行了。JVM的内存结构是啥样的?JVM作为一个虚拟机,指定得有自己的内存结构。那这内存结构是啥样的呢?我们计算机内存结构,分为堆区、栈区、代码区、数据区,那JVM是不也这样式儿的呢?还是有啥别的幺
2020-05-27 14:23:23 155
转载 Ubuntu下~/.bashrc文件的恢复方法
Ubuntu下~/.bashrc文件的恢复方法 问题描述如果不小心在更改环境变量文件~/.bashrc时出现将文件内容覆盖的情况,比如echo hello world > ~/.bashrc没有使用添加模式而是覆盖模式.NOTE:非覆盖情况下,不推荐本文的方法.解决方案用系统中存储的.bashrc备份文件恢复到~/目录下,执行:...
2020-03-24 12:12:27 1257
原创 神奇的inf
在进行编程的过程中我们常常会由于没有对分母是否为0进行判断,从而造成结果值为inf或-inf,对这个问题,从根本上杜绝的话就是在做除法的时候对分母进行是否为0的判断,若后续需要对一个数是否为inf或-inf作判断的话,我们可以采用如下方法来做...
2020-03-22 14:18:12 135
原创 memset() memecpy()
1.void *memset(void *s, int v, size_t n); 这里s可以是数组名,也可以是指向某一内在空间的指针;v为要填充的值;n为要填充的字节数;2.c和c++使用的内存拷贝函数,memcpy函数的功能是从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。void* memcpy(void* destinat...
2020-03-21 17:01:03 527
原创 mysql ubuntu 离线安装报错
ubuntu离线安装mysql报错:libmecab.so依赖库不存在。解决办法:该库为ubuntu系统带的一个依赖库,如找不到需要下载后重新安装。
2020-03-18 16:01:36 127
原创 QTCreator调试经验
QTCreator调试当工程pro中添加新的lib,编译通过,运行时找不到的解决方法:删除编译生成目录下的pro.user文件,然后重新编译即可。
2020-03-18 14:27:32 747
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人