自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小白博客

小白自学体验

  • 博客(84)
  • 问答 (1)
  • 收藏
  • 关注

原创 Dex文件分析,从magic到data的全字段,逐字节分析!小白也能懂

类型字节长度说明U4字符串的数量U4从文件开头到标识符的偏移量U4类型标识符列表数量,最多为 65535U4从文件开头到类型标识符列表的偏移量;如果 type_ids_size == 0(不可否认是一种奇怪的极端情况),则该值为 0。该偏移量(如果为非零值)应该是到 type_ids 区段开头的偏移量。U4原型标识符列表中的元素数量,最多为 65535U4原型从文件开头到标识符的偏移量U4字段数量U4从文件开头到字段标识符列表的偏移量U4方法标识符列表中的元素数量。

2023-06-09 17:17:30 734

原创 class文件中,常量池、方法表、属性表,异常表等等相关数据解析!小白就跟我一起对照学【class字节码文件分析】

前段时间读《深入java虚拟机》介绍到class文件的时候,由于理论知识较多,人总感觉疲惫不堪,就泛泛阅读了一下。在工作中使用起来知识点知道,但是总是需要查阅各种资料。今天有时间,继续整理常量池后面的相关知识。

2023-06-02 20:36:43 686 1

原创 Java调用c++的动态链接库正确方式,踩坑选手!

前言,前几个月泛泛的看了一下c++的相关书籍。在看的过程中,做几个例子啥的没啥感觉。但是在整合起来的过程中还是发现了蛮多问题。

2023-06-01 16:36:15 2583

原创 float浮点/double双精度浮点和二进制的相互转换,小白也能看明白!

二进制文件,故名思意就是进制为2的文件。在没有统一之前,各个公司对其的操作方式不一,导致系统间的耦合性非常低。那么自然需要形成一个统一的局面。IEEE 754自然应运而生,形成了一套约束方案。符号位sign:正数为0,负数为1 此题的符号位为:0Exponent:指数位1,但实际值=指数值加上固定偏移值2^(位元长度8-1)-1=127,十进制数位127+1=128,其二进制结果位:10000000Fraction长度(32-1(符号位长度)-8(位元长度)-exp因子数):22通过1.2.3

2023-05-26 13:49:22 1872

原创 2.2常量池及相关内容

在原来看书的过程中看到过常量池的相关文章,但是在点线面体中无法连接到一个整体。今日翻开书籍再次阅读的时候,发现的结果是原来如此!

2023-05-25 09:46:46 684

原创 类文件类型解读一

class文件解读,class文件包括什么信息。jvm又是如何解析class文件的。常量池里面装着什么?方法表集合里面有什么东西?字符如何保存的?

2023-04-18 10:44:37 48

原创 自动内存管理之【常量池】

这时候栈中的s2就会指向堆中“java”的地址,但是当s2.intern()被调用的时候,就会在常量池中进行查找,常量池中存在一个“java”的常量,将其返回。在变量s就会指向堆中的地址,当s.intern()进行查找的时候发现常量池中不存在,便会在常量池中创建,并执行堆中sb.toString()的地址。否则,该String对象将被添加到池中,并返回对此String对象的引用。系统在编译期间将“我爱我媳妇儿”常量添加到了常量词,到第二行的s指向的是堆对象的引用,而s.intern是常量词的引用。

2023-04-09 19:38:00 391 3

原创 自动内存管理-1

初生代好比我们刚刚出生的状态,在经历第一次的磨练之后,没有气馁。与此同时,每一年的磨练你的年龄也在+1,达到一定的时间的时候你就进入了老年状态。书中特地强调了运行时的常量池,通过上面描述可以得知运行时常量池属于方法区的一部分。一个实例对象的诞生地就在Eden(初生代)中,当垃圾回收器Gc执行第一次后,它没有被回收,就会进入第二轮第三轮等N多次的回收,当达到一个阈值的时候,就进入到了老年代。就会出现内存爆表的现象。直接内存,这里用我的理解是调用了native的方法,属于本地方法栈的一部分内容。

2023-04-08 12:15:20 255

原创 走进Java之编译jdk源码编译,手把手教学。

你会看到有一个building.html,这个文件是教你在对应的平台下编译jdk所需要的环境以及如何编译。在VMware中制作linux的系统,比如ubuntu、centos等等,笔者的电脑是Windows。程序员写的一些代码如.java的文件,他们在“工具”的帮助下翻译成了自己能识别的语言.class文件。1、在vm中使用共享文件夹的后果是Windows和linux磁盘的格式是不一样的,导师链接的时候出现问题,在ubuntu20中编译会出现g++版本过高的问题,jdk源码对make4.3兼容性的问题。

2023-04-07 13:13:56 526

原创 递增++,递减--。一体两面, 你真的了解不?

这里我说明一下,很多博客经过多番转载别人的文章,不能说误导,也不能说讲明了其中的理由。我是一个喜欢以拟人的方式进行学习,变成的任何对象也好,还是说个体也罢都是离不开大自然的。1.0中的例子是一个整体的表达式,而循环体中的表达式是这个整体中的子表达式。但是在于一些特定情况下,比如你到网上订票,肯定是先付款,然后才能出票。它必须是一个完整的表达式,而不是一个更大表达式的子表达式。后缀i++:先使用i本身的值,后面的语句才使用到副本i的值;输出的结果为:5,6,7,8,9。输出的结果为:5,6,7,8,9。

2022-10-10 15:34:17 376

原创 【无标题】

asdasdasd

2021-12-21 16:26:52 83

原创 linux如何使用帮助文档快速学习

原来在哔哩哔哩上面看韩老师对linux 的讲解视频,过一段时间忘记了。怎么说呢,没有系统的学习,你所得到的总是别人的,遇到问题只会Baidu 或者 Google。全是别人的,只会造个轮子,因为对地基的知识毫无可言。这也是很多公司不想去接收从培训公司出来的人。好了就不吐槽了,继续开干~linux的命令超多,如何学习linux全靠死记硬背是不行的,如何通过已有的帮助文档去建档才是最好的方法。好比我要将用户添加到组,我就只知道user ,这时候你完全可以使用两次table键,将带有user的命令全部选择出.

2021-07-23 14:51:35 287 1

原创 安卓 broadcast简介理解

Broadcast 直译 称为广播,通俗理解就是有人在播送广播,自然就有人接收广播。有了这个基础了解之后就容易了。如何定义

2021-05-29 15:14:12 297

原创 安卓Fragment介绍及生命周期

Fragment 可以翻译成片段,说白了就是占用的一块空间,这块空间可以被替换成其他的资料空间,常见的案例如 新闻,咨询……点击新闻在没有在活动间跳转的情况下使用的就是片段替换1、Activity活动和Fragment片段之间的关系Fragment片段是寄主在Activity活动中的,虽然说是寄主但是两者之间没有很亲密。在活动(Activity)获取Fragment片段可以通过getSupportFragmentManager().findFragmentById()的方式获取,在Fragmen..

2021-05-27 15:37:40 795

原创 安卓Activit生命周期

在网上或者一些pdf上面学习过一遍,也就是先看了一遍安卓里面大概有哪些东西。给自己的大脑做一个初步的填充,然后特地买了一本安卓的《第一行代码》,进行系统的学习。也不扯淡了,进入安卓的Activity的生命周期。Activity中文翻译是“活动”,首先活动需要理解他的生命周期。通俗易懂来讲,做一件事情,会有很多分支,在这个分支过程中的走向称为生命周期。onCreate Activity第一次创建的时候调用,加载布局和绑定事...

2021-05-27 12:39:15 93

原创 【Android 10】1、基本控件和布局

今日之座右铭:因为后期有用,所以干着也爽,只要不是就往死里干吧!做过JAVAWEB开发的朋友,看到标题就应该感觉很亲切并不陌生。这里我们做一番概述:1、常见的SDK原生态的控件A、一般基本开发中常见的控件基本在Common 、Text 、Buttons中,至于有哪些这里不做介绍B、Widgets :小器件组比如进度条、图片视图、视频等等之类的C、Layouts: 布局组 常见的有线性、相对、帧、约束布局等等,其中约束布局在sdk>9的情况下才添加的D、Containers: 容器组.

2021-02-24 23:32:24 237

原创 随感

自己座右铭:人不拼一把,永远不知道自己又多牛逼。任何事情都不晚,晚的是你自己内心不够强大。前言:累了就休息一下,休息好了接着干。混吃等死,等于白来此生。永远不要羡慕别人现在有多牛逼,别人在奋斗的时候你却在干嘛?此时你要思考的不是人生,而是目前的你。人最怕被别人牵着鼻子走,但是你又有和资本和别人论道呢?好久没更新博客了,上了一年班,同时因为家里的一些事情,博客也就停滞了更新。目前准备研究一下安卓,可能以后就主安卓这块了吧。...

2021-02-24 16:54:21 91

原创 C语言之指针数组

指针数值是什么,有什么用?通俗的讲,指针变量和普通变量的理解差不多,只不过是指针变量存储的是变量的地址,而普通变量存储的是值。指针在什么时候会使用到:传递和偏移两个环节中使用指针应该注意的事项:使用指针之前应该对其初始化(初始化已经声明的地址) 指针不能赋值具体值(指针所代表的是地址,而不是具体值) *p代表间接访问,&p代表直接访问 指针的偏移中*(p+1)的理...

2019-11-15 10:18:29 887

原创 编写一个程序:将两个字符串连接起来,不要用strcat函数

#include <stdio.h>#include <stdlib.h>#include <string.h>int main(void) { char a[20] = "ssbcdefg12"; char b[10] = "99cdefg12"; int j = 0; while (a[j] != '\0') { j++; }...

2019-11-12 12:09:52 4671 2

原创 C语言:有一篇文章,共有3行文字,每行有80个字符,要求分别统计出其英文大写字母,小写字母,数字,空格以及其他符号的个数

#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 10int main(void) { char ca[5] = "AAaa"; char cb[5] = "1234"; char cc[5] = "./';."; char p[13] = {0}; strc...

2019-11-11 17:51:09 7441

原创 C语言之数组

前面提到过C语言的字符串是有char字符组成,其中char字符数组中的长度需要-1,因为系统默认会在字符数组中的最后添加一个“\0”其他类型数组长度等于其自身长度,不能改变,这里贴一份杨辉三角行的code思路:1、使用二维数组 2、每一行的首和尾都为1,也就是a[i][0],a[i][i]都为1 3、拿掉1之后,下面的数字是前排数字的a[i...

2019-11-10 14:21:02 168

原创 C语言学习之字符串和char数组

char a[7]={'1','2','3','4','5','6'}长度为7的整形数组只能存储长度-1的数据因为C语言规定字符串借宿标志位‘'\0’,而系统对字符串常量自动加一个‘\0’,为了保证处理方法的一致性看一下内存的截图ASCII码对应值:cc为填充值字符‘1’ 二进制位0011 0001 转换成十六进制位 1*2^5+1*2^4+1 =31低...

2019-11-09 15:50:03 616

原创 正数,负数的移位

2019-11-02 14:46:26 857

原创 linux学习之nginx的安装与配置

生活总是有那么多的不顺,挺一挺熬一熬,希望总是有的。1、首先到http://nginx.org/en/download.html,下载nginx版本2、使用sftp5将文件上传到centos7 /opt目录下3、然后在/opt 目录下使用 tar -vzxf nginx-1.14.2.tar.gz 对其解压4、安装nginx所使用的依赖包文件yum install ...

2019-10-31 12:42:18 123

原创 linux学习之安装tomcat将浏览器80端口映射到8080端口总结

学习路途总是艰难险阻,但是迈过去了,总是好的。害怕的总是无所谓的态度,面对这美好生活。前面我们总结了如何安装Tomcat和JDK,这里我们再次啰嗦下jdk的环境变量export JAVA_HOME=/opt/apcha_tomcat/export JRE_HOME=$JAVA/jreexport CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$...

2019-10-30 14:49:35 467

原创 C语言之基础学习

/* *C语言预处理库 *stdio 是standard io 标准输入输出流 *h 是header 头部的意思 */#include “stdio.h”/* *这是一个main主函数,void是关键字,也是保留字 *printf() 是stdio.h标准io流中的方法 *方法是一个int类型的,需要返回值 */int main(void){ printf("我...

2019-10-23 21:27:48 136

原创 linux学习之mysql安装 rpm安装

从mysql官网下载rpm安装包,压缩包格式为.tar1、使用tar -vxf 解压mysql压缩包,得到2、查看本地是否已经安装过mysql 或者系统自带的mariadb显示没有安装过mysql,但是系统安装了mariadb,此时我们需要执行rmp -e 命令将其删除 【mariadb是mysql的一个分支,非正式版本】删除的时候我们发现有依赖包,删除不了,此时我...

2019-10-23 15:38:20 215

原创 linux学习之tomcat安装

前言:配置tomcat的步骤分为1、下载tomcat文件2、解压tomacat压缩包3、运行startup.sh4、监测防火墙是都打开8080端口5、配置好防火墙服务之后重启防火墙配置文件生效重点几个命令 vim /etc/profile 环境变量vim /etc/sysconfig/iptables 防火墙配置文件systemctl restart...

2019-10-23 14:23:44 257

原创 linux学习之jdk配置环境变量

到甲骨文官网下载jdk,使用xftp5上传至服务器/opt目录,使用tar -vzxf解压解压过后需要配置jdk环境变量重要,一面手动输入导致出错,这里我们采用复制的形式1、先进入/opt目录 cd /opt2、再次进入jdk文件目录3、查看当前目录路径,并复制4、使用编辑器vim打开 /etc/profile文件,然后调整到大写G,将光标移至最底部...

2019-10-23 13:44:05 198

原创 linux学习之安装Vmwave虚拟机教程

安装前准备:下载centeos 或者Ubuntu 下载vmwave虚拟机软件我下载的是下载centos链接地址:http://isoredirect.centos.org/centos/8/isos/x86_64/CentOS-8-x86_64-1905-dvd1.iso这里以centos7为例安装打开Vmwave并手动创建一个centos实例第一步:选择...

2019-10-22 18:34:20 658

原创 linux学习之入门篇

人不逼自己一把,永远不知道自己有多优秀。--默默的人Linux是什么?linux是内核,而不是操作系统 linux两个基本思想:①、一切皆文件 ②、每个软件都有自己的用途 linux的主要特点有:①、开源、免费 ②、安全 ③兼容性强以linux为内核的主要操作系统有那些?centos Ubuntu ……以linux为内核的操作系统可以做什么?当做服务器 个人操作系...

2019-10-22 17:16:50 136

原创 【Android】ListView控件总结

ListView控件是列表视图展示,排列方式是纵向。其中ListView控件有自己默认的布局,当默认布局不能满足我们要求时,我们可以进行自定义控件,下面我们详细分析ListView控件的使用。一、默认效果思路:在layout下创建一个布局,添加ListView控件,在Activity中对ListView控件赋值,其中ListView的方法setAdapter起了举足轻重的作用...

2019-03-31 09:06:28 2568

原创 【Android】理论篇

一、安卓大致可以分为四层框架:Linux内核层:为安卓设备提供各种底层驱动 系统运行库层:通过C或者C++库为Android系统提供主要的特性支持,比如提供对sqlite库的支持,提供webkit库对浏览器的支持 应用框架层:提供了构建应用程序的Api 应用层:所有安装在手机上的应用程序二、安卓任务简介Android是使用任务来管理活动的,一个任务就是一组存放在栈里的活动的集合,栈...

2019-03-30 16:26:01 547

转载 springmvc之pojo

标签: springmvcspringmvc学习笔记12-springmvc注解开发之包装类型参数绑定需求实现方法页面参数和controller方法形参定义本文主要介绍注解开发的介绍包装类型的参数绑定需求商品查询controller方法中实现商品查询条件传入。实现方法第一种方法:在形参中添加HttpServletRequest request参数,通过request接收查...

2018-12-21 12:12:30 1034

转载 SpringMvc工作原理

转至:https://www.cnblogs.com/xiaoxi/p/6164383.htmlSpringMVC的工作原理图:SpringMVC流程1、  用户发送请求至前端控制器DispatcherServlet。2、  DispatcherServlet收到请求调用HandlerMapping处理器映射器。3、  处理器映射器找到具体的处理器(可以根据xml配置、注解进...

2018-12-20 22:50:17 134

转载 Java中context上下文的理解

归纳于:https://www.cnblogs.com/baoendemao/p/3804756.html现实化理解:     Context翻译成上下文并不直观,按照语言使用的环境,翻译成“环境”、“容器”可能更好。把Context翻译成“上下文”只是不直观罢了,不过也没大错。我们来看看中文的“上下文”是什么意思。我们常说听话传话不能“断章取义”,而要联系它的“上下文”来看。比如,小丽对王老五...

2018-10-11 23:58:21 18260 9

原创 【Struts2】 ognl表达式总结

上一篇文章我们介绍了过滤器于拦截器的区别,这边我们详细总结下Struts2的ognl表达式1、介绍ognl之前首先要说说Struts2是什么?struts2是的核心是思想aop思想,纵向提取,横向重复。核心产物是拦截器,其默认jdk的api中提供了几十种默认的选择,是可插拔式的。struts2是一个基于mvc的框架,其重点坐落于control上,让我们在开发view和control层更方...

2018-10-11 23:52:25 181

原创 Hibernate出现 is not mapped的解决方案

public User user(User user){ this.beginTransaction(); User ruser=new User(); System.out.println(user.getUname()); ruser=(User)this.getSession().createQuery("select aa from User aa where unam...

2018-10-10 22:54:50 38796

原创 Struts2中拦截器与过滤器

核心:Struts2的核心就是拦截器,是基于过滤器开发的,所以最好与filter联动对比学习思想:拦截器是AOP思想,也就是面向切面编程,通俗点说就是纵向重复,横向提取,对aop不太理解的可以参考https://blog.csdn.net/yanquan345/article/details/19760027拦截器与过滤器的区别 :1. 拦截器是基于java的反射机制的,而过滤器是基于函...

2018-09-29 15:28:14 861

原创 【Java】ognl表达式随笔

单选框&lt;s:radio list="#{1:'男',2:'女',0:'妖' }" name="emp.esex"  theme="simple"&gt;&lt;/s:radio&gt;复选框&lt;s:checkboxlist list="{'上网','打篮球','泡吧','看书'}" name="emp.arrEhod"  theme="simp

2018-09-29 02:16:14 446

空空如也

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

TA关注的人

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