内存映射

错误:编码GBK的不可映射字符

对着背影说爱祢 提交于 2020-01-11 20:54:37
  当Java源代码中包含中文字符时,我们在用javac编译时会出现“错误:编码GBK的不可映射字符”。   由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的Unicode格式的文件编译成class类文件,此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将此以Unicode格式编码的class文件保存到操作系统中形成我们见到的class文件。当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。   使用-encoding参数指明编码方式:javac -encoding UTF-8 Test.java,就可以了。 来源: https://www.cnblogs.com/lucky-zhangcd/p/8409810.html

ORM映射框架总结--SQL 语句生成组件

别等时光非礼了梦想. 提交于 2020-01-11 07:48:43
1. SQL 语句生成组建 之前说过 ORM 框架中有一个非常重要的组件,那就是 SQL 语句生成组件。 SQL 语句生成组件,顾名思义就是用于生成 sql 语句的一个组件。之前的 Attribute 是用于修饰实体信息,而上一章讲的实体分析器分析了实体信息,在很大一部分程度上,以上做工作就是为这个 SQL 语句生成组件服务的。 该组件的核心接口是 IDbFactory , 它实现了接口 IDisposable 目前该 ORM 支持 SQL Server 数据库的 sql 语句生成,在后期过程中会逐步实现对 Oracle,Mysql,Access 等数据库的支持 下面是该接口定义的方法图表: 2. 核心接口 核心接口定义源码 核心接口定义源码 1 /* * 2 * 2010-2-2 3 * 4 * 情 缘 5 * 6 * IDbFactory 接口实现了IDisposable 接口,实现该 7 * 接口的类可以通过IDisposable 接口来释放对象占用 8 * 的内存。该接口的主要作用适用于根据实体对象来创 9 * 建SQL Server 数据库脚本。ORM 的主要作用是为了 10 * 实现对象化操作数据库,而此操作就是为了实现对象 11 * 化操作和数据库语句操作的过渡 12 * 13 * */ 14 using System; 15 using System

ARP协议

帅比萌擦擦* 提交于 2020-01-10 19:17:15
一台pc A(192.168.1.2),想和另一台pc B(192.168.1.3)通信,pc A对自己所在局域网络内的所有主机,也包括路由器的接口喊(发送ARP查询信息):ip地址是192.168.1.3的pc的mac地址是多少,请告诉我。pc B听到了,告诉pc A我是,并把自己的IP地址和mac地址,一起发送给了pc A。 ARP协议:Address Resolution Protocol。广播请求,单播更新。 ARP的作用:通过广播的方式,找出已知的IP地址的主机的mac地址。 ARP的request和response报文的格式是一样的,用一个标识位去区分是request还response ARP发送方报文的目的mac地址是广播地址:FFFFFFFFFFFF(48个bit)。 ARP接收方,接到发送方的请求报文后,会自动把请求方的ip地址和mac地址加入到自己的mac地址表里,然后用单播的方式,使用ARP报文,给发送方发送自己的mac地址。 ping使用的是icmp协议,这个协议的报文里必须有对方的mac地址,但是当第一次ping一个ip地址时,由于不知道对方的mac地址,所以需要发送一个arp广播,也就是arp协议的报文,到mac为FFFFFFFFFFFF的广播地址。 分析首次ping一个在同一个网络内的ip地址 在ios里第一次ping(R1的f0

Windows API函数大全一

丶灬走出姿态 提交于 2020-01-10 07:20:18
1. API之网络函数 WNetAddConnection 创建同一个网络资源的永久性连接 WNetAddConnection2 创建同一个网络资源的连接 WNetAddConnection3 创建同一个网络资源的连接 WNetCancelConnection 结束一个网络连接 WNetCancelConnection2 结束一个网络连接 WNetCloseEnum 结束一次枚举操作 WNetConnectionDialog 启动一个标准对话框,以便建立同网络资源的连接 WNetDisconnectDialog 启动一个标准对话框,以便断开同网络资源的连接 WNetEnumResource 枚举网络资源 WNetGetConnection 获取本地或已连接的一个资源的网络名称 WNetGetLastError 获取网络错误的扩展错误信息 WNetGetUniversalName 获取网络中一个文件的远程名称以及/或者UNC(统一命名规范)名称 WNetGetUser 获取一个网络资源用以连接的名字 WNetOpenEnum 启动对网络资源进行枚举的过程 2. API之消息函数 BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口 GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 GetMessageTime

java web 学习五(servlet开发1)

。_饼干妹妹 提交于 2020-01-10 07:05:27
一、Servlet简介   Servlet是sun公司提供的一门用于开发动态web资源的技术。   Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:   1、编写一个Java类,实现servlet接口。   2、把开发好的Java类部署到web服务器中。   按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet 二、Servlet的运行过程 Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后:   ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。   ②装载并创建该Servlet的一个实例对象。   ③调用Servlet实例对象的init()方法。   ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。   ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。 三

JavaWeb学习总结(五)--Servlet开发(一)

五迷三道 提交于 2020-01-09 16:55:32
一、Servlet简介   Servlet是sun公司提供的一门用于开发动态web资源的技术。   Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:   1、编写一个Java类,实现servlet接口。   2、把开发好的Java类部署到web服务器中。   按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet。 二、Servlet的运行过程 Servlet程序是由WEB服务器调用,web服务器收到客户端的Servlet访问请求后示意图, 其中Web容器泛指Web服务器和Servlet引擎 :   ①浏览器根据用户的请求生成http请求消息,并将其发送给Web容器。          ②Web容器检查内存中是否存在负责处理当前请求的Servlet程序的实例对象,如果不存在,则加载和创建该Servlet对象。这期间会调用实例对象的init()方法。        ③Web容器创建针对该次访问请求对象(request)和响应对象(response)。请求对象中包含了http的请求信息,从它里面可以获取HTTP请求消息的内容;响应对象用于封装将要回送给浏览器的http响应消息,响应对象中的初始内容为空

内存映射

白昼怎懂夜的黑 提交于 2020-01-08 15:00:53
内存映射 内存映射是在进程的虚拟地址空间中创建一个映射 内存映射分类 内存映射分为两类: 文件映射:把文件的一个区间映射到进程的虚拟地址空间,数据源为设备上的文件。 匿名映射:把物理内存映射到进程的虚拟地址空间,没有数据源。 在进程的虚拟地址空间中,代码段和数据段属于文件映射,堆、栈属于匿名映射。 内存映射的原理 mmap()会返回一个指针,它指向进程虚拟地址空间中的一个地址,这样以后,进程无需再调用read或write对文件进行读写,而只需要通过ptr就能够操作 文件。但是ptr所指向的是一个逻辑地址,要操作其中的数据,必须通过MMU将逻辑地址转换成物理地址,如图1中过程2所示。这个过程与内存映射无关。 建立内存映射并没有实际拷贝数据,这时,MMU在地址映射表中是无法找到与ptr相对应的物理地址的,也就是MMU失败,将产生一个缺页中断,缺 页中断的中断响应函数会在swap中寻找相对应的页面,如果找不到(也就是该文件从来没有被读入内存的情况),则会通过mmap()建立的映射关系,从硬 盘上将文件读取到物理内存中,如图1中过程3所示。这个过程与内存映射无关。 如果在拷贝数据时,发现物理内存不够用,则会通过虚拟内存机制(swap)将暂时不用的物理页面交换到硬盘上,如图1中过程4所示。这个过程也与内存映射无关。 内存映射和读写文件的效率 read文件时

Linux 虚拟内存和物理内存的理解

血红的双手。 提交于 2020-01-07 12:11:15
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 首先,让我们看下虚拟内存: 第一层理解 1. 每个进程都有自己独立的4G内存空间,各个进程的内存空间具有类似的结构 2. 一个新进程建立的时候,将会建立起自己的内存空间,此进程的数据,代码等从磁盘拷贝到自己的进程空间,哪些数据在哪里,都由进程控制表中的task_struct记录,task_struct中记录中一条链表,记录中内存空间的分配情况,哪些地址有数据,哪些地址无数据,哪些可读,哪些可写,都可以通过这个链表记录 3. 每个进程已经分配的内存空间,都与对应的磁盘空间映射 Linux 使用虚拟地址空间,大大增加了进程的寻址空间, 由低地址到高地址分别为 : 只读段: 该部分空间 只能读,不可写 ;(包括: 代码段、rodata 段(C常量字符串和#define定义的常量) ) 数据段: 保存 全局变量、静态变量 的空间; 堆 : 就是平时所说的动态内存, malloc/new 大部分都来源于此。其中堆顶的位置可通过函数 brk 和 sbrk 进行动态调整。 文件映射区域 : 如 动态库、共享内存 等映射物理空间的内存,一般是 mmap 函数所分配的虚拟地址空间 。 栈: 用于维护函数调用的上下文空间,一般为 8M ,可通过 ulimit –s 查看。 内核虚拟空间: 用户代码不可见的内存区域,由内核管理

Hibernate自动生成实体类注解

天涯浪子 提交于 2020-01-07 05:28:22
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 常用的hibernate annotation标签如下: @Entity --注释声明该类为持久类。将一个Javabean类声明为一 个实体的数据库表映射类,最好实现序列化.此时,默认情况下,所有的类属性都为映射到数据表的持久性字段.若在类中,添加另外属性,而非映射来数据库的, 要用下面的Transient来注解. @Table (name="promotion_info") --持久性映射的表(表名="promotion_info).@Table是类一级的注解,定义在@Entity下,为实体bean映射表,目录和schema的名字,默认为实体bean的类名,不带包名. @Id --注释可以表明哪种属性是该类中的独特标识符(即相当于数据表的主键)。 @GeneratedValue --定义自动增长的主键的生成策略. @Transient --将忽略这些字段和属性,不用持久化到数据库.适用于,在当前的持久类中,某些属性不是用于映射到数据表,而是用于其它的业务逻辑需要,这时,须将这些属性进行transient的注解.否则系统会因映射不到数据表相应字段而出错. @Temporal (TemporalType.TIMESTAMP)--声明时间格式 @Enumerated --声明枚举 @Version -

Charles抓包工具的使用

半腔热情 提交于 2020-01-06 14:46:21
1、工具导航栏 Charles 顶部为菜单导航栏,菜单导航栏下面为工具导航栏。视图如下图所示: 工具导航栏中提供了几种常用工具: :清除捕获到的所有请求。 :红点状态说明正在捕获请求, 灰色状态说明目前没有捕获请求。 :灰色状态说明是没有开启网速节流, 绿色状态说明开启了网速节流。 :灰色状态说明是没有开启断点, 红色状态说明开启了断点。 :编辑修改请求,点击之后可以修改请求的内容。 :重复发送请求,点击之后选中的请求会被再次发送。 :验证选中的请求的响应。 :常用功能,包含了 Tools 菜单中的常用功能。 :常用设置,包含了 Proxy 菜单中的常用设置。 2、主界面视图 Charles 主要提供两种查看封包的视图,分别名为 Structure 和 Sequence 。 Structure : 此视图将网络请求按访问的域名分类。 Sequence : 此视图将网络请求按访问的时间排序。 使用时可以根据具体的需要在这两种视图之前来回切换。请求多了有些时候会看不过来,Charles 提供了一个简单的 Filter 功能,可以输入关键字来快速筛选出 URL 中带指定关键字的网络请求。 对于某一个具体的网络请求,你可以查看其详细的请求内容和响应内容。如果请求内容是 POST 的表单,Charles 会自动帮你将表单进行分项显示。如果响应内容是 JSON 格式的,那么 Charles