自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 问答 (3)
  • 收藏
  • 关注

原创 头文件与类声明

C++:数据是私有的。数据和函数包在一起。(1)头文件 (2)主程序 (3)标准库。include 系统能找到的用C++ class的分类。

2023-03-22 09:38:38 56

原创 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 201

原创 Servlet再回首

研究javaweb快一个月了,还是个小白,跟着搭框架,跟着做项目。里面有个Servlet一直写,却一直模模糊糊不了解。今天拎它出来瞅瞅。 1.啥是Servlet Servlet就是一段跑在服务器上的程序,用java写的。主要功能是交互式的浏览和生成数据,生成动态web。 啥是动态web?说到动态web,与其对应的就是静态web。 静态web:打死都不变的,你我他看到的都一样; 动态web:根据浏览的内容,动态生成出来的,你我他可能看到的不一样。比如你搜索爸爸,看到了我;我搜索儿子,看到的可能是您。

2020-06-18 16:46:58 164

原创 深拷贝浅拷贝

学习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 111

原创 精神小伙儿探秘JVM( 八)

类加载 认识了类文件,来研究最后一部分内容,类加载。 类的声明周期 加载 验证 准备 解析 初始化 使用 卸载 其中,验证/准备/解析统称为连接。这样就是5个阶段,加载 、连接、初始化、使用、卸载。 类加载中的加载过程 加载作为类加载中的第一步,有点拗口。主要进行三步: 1、获取类的二进制字节流; 2、将二进制字节流中的静态结构,转化为方法区运行时数据结构; 3、内存中创建一个代表该类的java.lang.Class对象,作为方法区访问这个类的入口。 验证 验证字节流中的信

2020-06-02 09:29:03 128

原创 精神小伙儿探秘JVM(七)

类文件结构 类文件也就是有Javac编译器编译生成的.class文件,也叫字节码文件。它是JVM实际执行的文件。无论什么语言,只要能生成类文件,就可以在JVM上运行;而正是有了JVM的存在,可以将其部署在任意操作系统环境上,也就实现了跨平台,即平台无关性。 Class文件结构 Class文件,是一种二进制文件,里面全是0/1,没有空格。主要内容包括两种:无符号数、表。具体结构包括: 魔数 版本信息 常量池 访问标志 类索引、父类索引、接口索引集合 字段表集合 方法表集合 属性表集合

2020-06-02 09:01:42 129

原创 精神小伙儿探秘JVM( 六)

JVM调优 连续研究了五篇,这次终于来到小高潮了,也是我最好奇的部分,JVM调优。作为Java小白,听到JVM调优不止一次。包括网上的视频,招聘岗位的要求等等,都会提到JVM调优。那么,JVM调优到底是啥?今天俺们就来瞅瞅。 调优调啥呢 JVM是Java虚拟机,是帮助字节码实际解释运行的东东。根据前面的探秘系列,不难看到,JVM这里头需要考虑的问题很多。主要就是对象的生成创建以及GC回收,新生代老年代的判定处理。其中的算法,处理机制的不同,会很大程度的影响JVM性能。而通过JVM对外提供的参数设置,可

2020-06-02 08:18:27 231

原创 精神小伙儿探秘JVM( 五)

对象内存分配与回收策略 一个对象在内存中分配在堆上,堆区依照对象的生命周期,需要将不同生命周期的对象,分而治之。这样,一个对象的区域分配就需要讲究一定的策略。主要有以下几个方面: 可着Eden先来 Eden作为堆中最主要的部分,每次分配内存,都优先在其中进行分配。当然,如果Eden里没地方了咋办?别慌,没地方就先来波清理。这波清理可以有两种,Minor GC和Major GC/Full GC。其中,Minor GC回收新生代的对象,新生代活的不久,所以需要进行频繁回收,每次速度也非常快。Major G

2020-05-30 10:07:08 190

原创 精神小伙儿探秘JVM(四)

HotSpot如何回收垃圾 HotSpot作为JVM中的大太子,对垃圾回收必定很有心得。今天咱们就来聊聊它是怎么处理垃圾的。 垃圾分类 上回咱们说过,JVM中的垃圾,按照存活时间不同,分为新生代和老年代。新生代垃圾 ...

2020-05-29 23:49:56 115

原创 精神小伙儿探秘JVM(三)

垃圾收集策略与算法 大家好,精神小伙,探秘猎奇,极客精神,用不放弃! 今天咱们来扒一扒Java里头的垃圾收集。垃圾分类,有你有我,全民环保,人人有责! 没错,显示社会需要回收垃圾,清除垃圾,咱们JVM也是。那么,JVM中的垃圾都有啥?都是哪个倒霉孩子给制造的呢? 垃圾都有啥 这要从咱们探秘系列的第一章说起。JVM中分为程序计数器,Java栈,C栈,堆,方法区。可以看到,程序计数器和那两个栈,当方法执行结束后,申请的内存空间自动被回收,不会产生内存垃圾。唯有堆和方法区,一个存放对象,一个存放类信息,

2020-05-28 15:30:39 194

原创 精神小伙儿探秘JVM(二)

上回说到,JVM是个啥,里面的内存模型是怎样的。这次我们来研究HotSpot虚拟机。 HotSpot虚拟机 啥?这又是个啥?不是Java虚拟机么?咋又整出个HotSpot来?我读书少,别骗我。。。淡定,我也是小白。HotSpot VM,其实Java程序员都知道,它是Sun JDK和OpenJDK中所带的虚拟机,也是目前使用范围最广的Java虚拟机。所以,这玩意就是JVM中的一种。 对象的内存布局 分为三块区域 对象头(Header) 实例数据(Instance Data) 对齐填充(Paddi

2020-05-28 13:50:34 131

原创 精神小伙儿探秘JVM(一)

JVM是什么? JAVA Virtual Machine,即Java虚拟机。传说Java是可以跨平台的,为啥这么牛?这就要归功于JVM的功劳。Java程序只需要被编译成字节码,即.class文件,通过字节码就可以在虚拟机上运行。这样,不管你的操作系统是啥,只要安装了JVM,Java程序都能畅通无阻的运行了。 JVM的内存结构是啥样的? JVM作为一个虚拟机,指定得有自己的内存结构。那这内存结构是啥样的呢? 我们计算机内存结构,分为堆区、栈区、代码区、数据区,那JVM是不也这样式儿的呢?还是有啥别的幺

2020-05-27 14:23:23 161

转载 Ubuntu下~/.bashrc文件的恢复方法

Ubuntu下~/.bashrc文件的恢复方法 问题描述 如果不小心在更改环境变量文件~/.bashrc时出现将文件内容覆盖的情况,比如echo hello world > ~/.bashrc没有使用添加模式而是覆盖模式. NOTE:非覆盖情况下,不推荐本文的方法. 解决方案 用系统中存储的.bashrc备份文件恢复到~/目录下,执行: ...

2020-03-24 12:12:27 1287

原创 神奇的inf

在进行编程的过程中我们常常会由于没有对分母是否为0进行判断,从而造成结果值为inf或-inf,对这个问题,从根本上杜绝的话就是在做除法的时候对分母进行是否为0的判断,若后续需要对一个数是否为inf或-inf作判断的话,我们可以采用如下方法来做 ...

2020-03-22 14:18:12 143

原创 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 549

原创 mysql ubuntu 离线安装报错

ubuntu离线安装mysql报错:libmecab.so依赖库不存在。解决办法: 该库为ubuntu系统带的一个依赖库,如找不到需要下载后重新安装。

2020-03-18 16:01:36 140

原创 QTCreator调试经验

QTCreator调试 当工程pro中添加新的lib,编译通过,运行时找不到的解决方法: 删除编译生成目录下的pro.user文件,然后重新编译即可。

2020-03-18 14:27:32 775

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除