- 博客(47)
- 收藏
- 关注
原创 c++编译的四个阶段
头文件展开的意思就是:将include包含的头文件编译后包含进来,然后替换include指令。库文件一般用包含,头文件一般用“ ”包含。gcc -E hello.c -o hello.i //输入c,输出i。gcc -S hello.i -o hello.s //输入i,输出s。作用:头文件展开,宏替换,注释去掉。将函数库中的代码组合到目标文件中去。作用:将汇编语言翻译成二进制文件。作用:将高级语言编译成汇编语言。...
2022-08-16 15:36:50
960
原创 window下VS2022封装静态库以及调用静态库
1.头文件Test.h(_declspec(dllexport)要放在导出的类名前面,表示要导出封装到库)3.右键项目属性->配置属性->配置类型(修改为静态库.lib)4.右键生成,会生成静态库。
2022-08-01 21:48:45
2714
原创 window下VS2022封装动态库以及调用动态库
1.头文件Test.h(_declspec(dllexport)要放在导出的类名前面,表示要导出封装到库)3.右键项目属性->配置属性->配置类型(修改为动态库.dll)4.右键生成,会生成动态库(会生成两个文件,一个是dll,一个lib,lib是记录了函数入口的索引地址信息,dll里面是函数的真正实现)...
2022-08-01 21:03:26
4282
3
原创 Linux下C++使用Protobuf的安装步骤(vscode)
拷贝生成好的Person.pb.cc和Person.pb.h文件到等下要编写的程序main.cpp的同级目录下。//创建一个空结构,将person1的序列化结构(string)反序列化给person2实现值的传递。进入到自己的目录下/home/linyu/,执行viprofile,添加以下命令到最后一行,保存退出。选择cpp版本,上传到linux服务器的目录,我这里上传到/home/linyu/upload。#以c++的格式生成pb文件,*.pb.h*.pb.cc。.........
2022-08-01 15:11:42
1924
原创 g++参数说明
放在/lib和/usr/lib和/usr/local/lib里的库直接用-l(小写l)参数就能链接了,但如果库文件没放在这三个目录里,而是放在其他目录里,这时我们只用-l参数的话,链接还是会出错,比如我们把libm.so放在/aaa/bbb/ccc目录下,那链接参数就是-L/aaa/bbb/ccc-lm。寻找的顺序是-I{path}->/usr/lib->usr/local/lib。寻找的顺序是-I{path}->/usr/include->usr/local/include。...
2022-08-01 15:09:41
643
原创 @JsonProperty和JSONField的区别?
目的:都是为了解决json字符串的某些属性名和JavaBean中的属性名匹配不上的问题。1.JsonProperty是位于jackson包里面,搭配ObjectMapper().writeValueAsString(实体类)方法使用,将实体类转换成字符串。搭配ObjectMapper().readValue(字符串)方法使用,将字符串转换成实体类。<dependency>...
2019-06-12 11:11:19
29871
1
原创 classpath:与classpath*的比较
【classpath:】此配置表示告诉web容器去classpath(WEB-INF/classes和WEB-INF/lib)中去加载指定名称的配置文件,若是有同名文件,则只会加载一个。【classpath*:】此配置表示告诉web容器去classpath(WEB-INF/classes和WEB-INF/lib)中去加载指定名称的配置文件,若是有同名文件则会全部加载...
2019-04-18 14:45:07
266
原创 Jquery页面加载函数比较
1.第一种()$(fn)2.第二种$(document).ready(fn)3.第三种$().ready(fn)注意:第一种,第二种,和第三种都是一样的。并且一个页面可以配置多个页面加载函数,不会被覆盖。执行时机:等待DOM结构加载完成以后就执行。4.第四种(fn)()此种方式和放在页面的顺序有关,如果放在前面,可能获取某些元素对象的时候可能会...
2019-04-12 11:01:38
284
原创 查看java编译后的class版本
1.使用EditPlus打开class文件。编码方式选择,以16进制方式显示只看第一行数据,前面8个字节CA FE BA BE是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节00 33 是jdk的版本号jdk版本号对应关系如下:版本号 对应十进制 jdk版本号 2E 46 jdk1.2 2F 47 ...
2019-03-31 11:56:11
6185
1
原创 Eclipse里面给Web项目更换JDK版本并且重新编译项目
项目选中,右键–>Properties–>Project Facets,打开如下界面:Apply and Close以后,项目会重新编译。
2019-03-31 11:49:09
2539
原创 九、请介绍类加载过程,什么是双亲委派模型?
一、类加载1.什么是类加载?JVM将编译好的.class文件(字节码文件)以二进制流的方式加载到我们内存中,并且将二进制流中静态的数据结构转换成我们方法区中动态运行数据结构,并且在对堆内存生成一个java.lang.class对象,作为提供给外界访问我们方法区动态运行数据结构的一个入口。2.类加载器有哪些?主要的就是启动类加载器(BootStrap ClassLoader)和其他所...
2018-11-01 19:43:46
5199
原创 八、抽象类的接口的区别
一,基本区别1.抽象类允许有具体成语方法的实现,而接口必须方法都是抽象的,不能有实现。2.一个类只可以继承一个抽象类,但是却可以实现多个接口。3.抽象类允许有各种类型的成员变量,而接口的成员变量是public static final的。4.抽象类中允许有静态代码块和静态方法,而接口没有。5.抽象类的方法可以用public,protect,默认,private修饰,而接口中的方...
2018-10-31 21:40:26
148
原创 七、对比Hashtable、HashMap、TreeMap有什么不同?(设计、性能、安全)
都实现了map接口,以键值对key-value存储和操作数据的容器结构。一、低层实现、性能、安全Hashtable:无序,线程安全,效率低,哈希表(数组+链表)的实现,不允许key有空值。(因为效率低且开销大,现在已经很少使用了)HashMap:无序,线程不安全,效率高,哈希表(数组+链表)的实现,允许有一个key为空值。(get和put的操作通常情况下能够达到常数的时间性能)Tr...
2018-10-31 21:23:19
274
原创 六、对比Vector、ArrayList、LinkedList有何区别?(设计、性能、安全)
都实现了list接口,提供了对应的增加,获取,删除对象的方法等等。一、低层设计实现、安全、性能Vector:低层实现是用数组实现的,线程安全,但是效率低,适合多线程中使用,经常读取对象,少插入和删除中使用。ArrayList:低层实现使用数组实现的,线程不安全,效率高,适合单线程中使用,经常读取对象,少插入和删除中使用。LinkedList:低层采用双向链表实现的,线程不安全,适合...
2018-10-31 20:16:11
167
原创 五、int和Integer有什么区别?
一.基本使用对比int是基本数据类型,作为成员变量的时候默认值为0。Integer是int的包装类,作为成员变量的时候默认值为null。int不需要实例化可以直接使用,Integer需要实例化以后才可以使用。int是直接存放数值的,而Integer是对对象的引用。二.比较大小处理(使用==)一般是比较相同的数:1.一个int和一个Integer:int a=5;...
2018-10-31 19:53:47
583
原创 四、 String、StringBuffer、StringBuilder有什么区别?
String:字符串常量,不可变的。(字符串的拼接,截取等等都会产生大量的对象)StringBuffer:字符串缓冲区,可变的,线程安全的,效率低。多线程下共享同一个变量使用。StringBuilder:字符串缓冲区,可变的,线程不安全的,效率高。单线程使用效率高。...
2018-10-31 19:37:44
168
原创 三、final、finally、 finalize有什么不同?
一、final 不可变通常用来修饰一个类或者一个方法或者一个变量1.修饰类的时候,表示这个类是不可以被继承的。(避免重写方法,更改一些功能)2.修饰方法的时候,表示这个方法是不可以被重写的。(同上)3.修饰变量的时候,表示这个变量的引用是不可以更改的。(保证变量的值是正确的,避免被乱修改)二、finally 最后的通常和try-catch语句块一起使用,用来确保某些业务处理...
2018-10-31 19:27:19
168
原创 二、Exception和Error有什么区别?
一、Exception:程序运行过程中,可能出现的一些异常,是要求程序去处理或者捕获的。是因为程序的设计或者一些输入等等之间引起的问题。Exception是java运行时候可能出现的一种异常,分为运行时(非受检异常)异常和非运行时异常(受检异常)。1.运行时异常:如数组访问下标越界,空指针异常,数字转换异常等等。通常程序不强制我们去捕获这种异常,但是鼓励我们去捕获这种异常。2.非运...
2018-10-31 19:13:08
234
原创 一、java平台的了解
一、特点1.一次书写,多次运行(跨平台)2.面向对象(封装,继承,多态)注意:多次运行的指在安装了java运行环境的主机上可以运行。与硬件无关,与操作系统无关。JDK>JRE>JVM>JAVA二、流程编写好java源代码->javac(java语言编译器)将源代码变成字节码,通常我们经常看到的.class文件->java虚拟机将字节码转换成计算...
2018-10-31 18:59:51
142
原创 servlet学习(七)ServletContext
一、问题session可以解决同一个用户之间不同请求的数据共享问题,那么不同用户之间的需要数据共享怎么办?二、解决使用ServletContext对象三、原理ServletContext对象是由服务器进行创建的,也就是说一个项目里面只有一个ServletContext对象,不同的用户获取到的ServletContext对象都是同一个,该ServletContext对象由所有用户...
2018-10-23 19:25:16
180
原创 servlet学习(六)Session
一、问题一个用户的不同请求处理如何共享数据?二、解决使用session技术三、原理session技术是依赖cookie技术的服务端的数据存储技术。用户第一访问服务器的时候,服务器会创建一个session对象给用户,并将session对象的JSESSIONID使用cookie技术存储给浏览器中,保证用户的其他请求能够获取到同一个session对象,也保证了不同请求能够获取到共享数...
2018-10-23 11:09:46
209
原创 servlet学习(五)Cookie
一、问题两次不同的请求如何共享数据?二、采用Cookie(浏览器存)+Session(服务器存)三、作用解决了不同请求的数据共享问题。四、使用1.创建cookie对象 //创建cookie对象 Cookie cookie=new Cookie("id", "1");2.设置cookie对象 //设置cooki...
2018-10-22 19:41:34
204
原创 servlet学习(四)请求转发和重定向
一、请求转发和重定向两者之间的区别请求转发:一次请求,地址栏信息不变。 重定向:两次请求,地址栏信息会发生改变。使用时机:1.如果表单中有数据,而数据又比较重要,不能重复提交,建议使用重定向。2.如果servlet接受后,无法进行处理,建议使用重定向定位到可以处理的资源。请求转发:路径为当前项目的根目录,直接书写跳转的资源路径即可。req.getRequest...
2018-10-22 19:25:31
230
原创 servlet学习(三)response对象设置响应信息
一、作用响应数据到浏览器的一个对象二、使用 设置响应行//设置响应行resp.setStatus(200); //设置正确响应的状态码。这个方法被用于当响应结果正常时设置响应码resp.sendError(200,"ok"); //设置错误状态码+状态信息,会中断后面的信息 设置响应头 //设置响应头 ...
2018-10-22 19:09:35
2733
原创 servlet学习(二)request对象获取请求头信息
一、作用封存了当前请求的所有请求信息二、使用获取请求头的信息包括:1.请求行:请求方式 请求URL/URI 协议版本//获取请求行 String method=req.getMethod(); StringBuffer url=req.getRequestURL(); String uri=req.getRequestURI(); ...
2018-10-22 18:44:41
3028
原创 servlet学习(一)书写步骤掌握
每写一个servlet的时候,先写注释,后写代码,写注释的步骤按照如下要求: //1.设置请求编码格式req.setCharacterEncoding("utf-8"); //2.设置响应编码格式 resp.setContentType("text/html;charset=utf-8"); //3.获取请求数据 ...
2018-10-22 18:27:59
253
原创 Servlet中调用request.getSession()中低层发生了什么事件??
访问方式:浏览器->服务器1.如果servlet中没有调用request.getSession()方法,那么服务器永远都不会创建JSESSIONID。2.如果servlet中调用request.getSession()方法那么情况分为以下两种情况: 2.1 如果是第一次访问servlet,那么request.getSession()会创建一个JSESSIONID,并且在响应头里...
2018-10-21 23:54:01
1458
转载 4种事务的隔离级别,InnoDB如何巧妙实现?
什么是事务的隔离性?隔离性是指,多个用户的并发事务访问同一个数据库时,一个用户的事务不应该被其他用户的事务干扰,多个并发事务之间要相互隔离。 一个事务怎么会干扰其他事务呢?咱们举例子来说明,假设有InnoDB表:t(id PK, name); 表中有三条记录:1, shenjian2, zhangsan3, lisi case 1事务A,先执行,...
2018-10-07 22:43:08
513
原创 hibernate下载
网站:https://sourceforge.net/projects/hibernate/files/手册查看:http://docs.jboss.org/hibernate/orm/
2018-06-25 23:33:54
630
原创 使用hibernate自动创建Mysql表失败原因及解决方法
原因:hibernate里的dialect和Mysql的版本不匹配,SQL语句里的type=“****”使用在MySQL5.0之前,5.0之后就要是使用engine=“****”。解决:修改hibernate.cfg.xml文件MySql5.0之前的配置 <property name="dialect">org.hibernate.dialect.MySQLDialect</...
2018-06-25 16:44:12
2546
4
转载 java.lang.ClassNotFoundException: javax.xml.bind.JAXBException问题解决
故障原因:JAXB API是java EE 的API,因此在java SE 9.0 中不再包含这个 Jar 包。 java 9 中引入了模块的概念,默认情况下,Java SE中将不再包含java EE 的Jar包 而在 java 6/7 / 8 时关于这个API 都是捆绑在一起的解决方案一:降低JDK 9 版本到 JDK 6/7/8解决方案二:手动加入这些依赖Jar包要解决这个问题,我导入了下面这...
2018-06-25 16:20:16
5734
原创 Hibernate 版本问题,注解使用@Entity以及AnnotationConfiguration()方法过时问题。
将Configuration cfg = new AnnotationConfiguration();改成Configuration cfg = new Configuration();3.×的版本开始就是全面用Configutation替代了AnnotationConfigutation()。旧一点的版本好像还必须用AnnotationConfigutation(),可以下载一个单独的jar包,...
2018-06-24 16:41:05
2049
原创 linux下Centos6.9防火墙的开启,关闭,以及状态查看。
1.通过service命令(及时生效,下次重新启动机器的时候会自动还原)查看防火墙的状态:service iptables status开启防火墙:service iptables start关闭防火墙:service iptables stop注:使用此方法的优点是可以立马生效,但是重启机器后会自动还原。2.通过chkconfig命令(永久生效的命令,无论重启多少次)查看防火墙的状态:chkco...
2018-06-22 16:12:53
6878
原创 linux的reposync命令找不到问题,部署本地yum源的问题。
reposync命令是一个python脚本。包含在yum-utils包中。因此,我们如果要使用reposync命令的时候,需要安装yum-utils包。使用以下命令:yum install yum-utilsreposync -r 仓库名(一般为base) -p 目标目录...
2018-06-22 16:02:24
4679
原创 centos6.9配置修改/etc/rc.d/rc.local文件之后,重启后无法进入系统的解决问题。
问题:本来想在系统开机的时候自动运行某个sh脚本,启动进程,然后放在后台运行(命令后面加上&),开启自动启动(比如一些联网操作),省去麻烦,然后发现修改了/etc/rc.d/rc.local文件之后,系统无法进入系统登录的界面,一直卡在进度条处。解决办法:进入单用户模式,修改/etc/rc.d/rc.local文件,然后重新启动linux(shutdown -r now)。说明:GNU G...
2018-06-22 15:52:39
10800
1
原创 Linux下Java编译错误:illegal character: '\ufeff'
针对上边编译错误的问题,解决方法其实很简单,只要把BOM头删掉就好了。Linux下可以这么操作:vi -b ***.java然后可以看到文件头有<FEFF>的字样,把它删掉即可。...
2018-06-18 00:54:04
1736
1
原创 java.lang.UnsupportedClassVersionError不同版本jdk之间的问题,服务器部署项目问题
顾名思义,java.lang.UnsupportedClassVersionError低版本的jdk无法支持高版本的jdk编译好的class文件。我电脑的MyEclipse对应的jdk版本是9.0的,但是linux上的jdk是8.0的,把电脑的项目部署到linux服务器上的时候,出现了这个问题。解决办法如下:1.linux服务器上的jdk版本也升级到和电脑一样版本的jdk。2.重新把java文件拷...
2018-06-18 00:45:24
889
原创 python2和python3之间input()函数的重要区别
python2中的输入函数:1.input() #如果输入是一个数学计算式,会自动执行计算得出结果,并且会自动识别出输入的类型(str,int,float)2.raw_input() #完全默认为str类型python3中的输入函数1.input() #完全默认为str类型首先说一下python2中input()和python3中input()的区别:...
2018-06-18 00:12:55
2832
原创 centos数据mysql和MariaDB的问题
MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。[MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。MariaDB之于MySQL,类似于CentOS之于Redhat。Oracle拥有M...
2018-06-17 15:14:06
1106
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人