linux内核学习(4)建立正式内核的页式内存映射, 以x86 32位模式为例
void __init setup_arch(char **cmdline_p)
{
max_low_pfn_mapped = init_memory_mapping(0, max_low_pfn<unsigned long __init_refok init_memory_mapping(unsigned long start, unsigned long end)
{
for (i = 0; i < nr_range; i++)
ret = kernel_physical_mapping_init(mr[i].start, mr[i].end, mr[i].page_size_mask);
=>unsigned long __init kernel_physical_mapping_init(unsigned long start,
unsigned long end,
unsigned long page_size_mask)
{
和页表项
start_pfn = start >> PAGE_SHIFT;
end_pfn = end >> PAGE_SHIFT;
pgd_t *pgd_base = swapper_pg_dir;
pages_2m = pages_4k = 0;
pfn = start_pfn;
pgd_idx = pgd_index((pfn<pte_t * __init one_page_table_init(pmd_t *pmd)
{
if (!(pmd_val(*pmd) & _PAGE_PRESENT)) { // 生成页表
pte_t *page_table = NULL;
if (after_bootmem) {
#if defined(CONFIG_DEBUG_PAGEALLOC) || defined(CONFIG_KMEMCHECK)
page_table = (pte_t *) alloc_bootmem_pages(PAGE_SIZE);
#endif
if (!page_table)
page_table =
(pte_t *)alloc_bootmem_pages(PAGE_SIZE);
} else
page_table = (pte_t *)alloc_low_page();
paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT);
set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE)); // 将页表物理地址写在页目录项
BUG_ON(page_table != pte_offset_kernel(pmd, 0));
}
return pte_offset_kernel(pmd, 0);
}
pte_ofs = pte_index((pfn<
Linux内核源码学习 (1)- 从实模式到保护模式
https://my.oschina.net/u/135465/blog/99590
你可能感兴趣的:(linux内核,内存管理)
- android学习,android后端服务器的搭建
2401_84413531
程序员android学习服务器
那么在市场紧缩以及大前端的趋势下,我们移动端程序员如何突破职业瓶颈,保持个人的核心竞争力呢?一、硬技能:专业的技术知识1.Java/Kotlin开发语言Java常用数据结构:ArrayList、Vector、CopyOnWriteArrayList、HaspMap、ConcurrentHashMap、HashTable等使用场景。JVM虚拟机包括Java内存管理,GC垃圾回收机制,类加载机制。推荐
- 一文了解riscv软件系列之linux内核编译运行
Linux加油站
linux服务器运维
一、交叉编译工具链的安装【推荐阅读文章】代码大佬的【Linux内核开发笔记】分享,前人栽树后人乘凉!一篇长文叙述Linux内核虚拟地址空间的基本概括一文了解Linux内核的Oops需要多久才能看完linux内核源码?详细讲解磁盘及文件系统管理(图例解析)交叉编译工具链可以通过源码进行编译安装:1.下载工具链源码:该仓库包含多个submodules,因此需要添加--recursive选项来下载所有子
- Android输入事件传递流程系统源码级解析
古苏
android
1.硬件层到Linux内核设备节点:触摸事件由内核驱动捕获,写入/dev/input/eventX。关键结构体:input_event(包含时间戳、类型、代码、值)。2.Native层处理(system_server进程)2.1EventHub路径:frameworks/native/services/inputflinger/EventHub.cpp职责:通过epoll监听设备节点,读取原始事件
- python核心编程之开门见山,带你了解Python后的大背景
进击的雷神
python开发语言
目录一、什么是Python二、起源三、特点1、高级2、面向对象3、可升级4、可扩展5、可移植性6、易学7、易读8、易维护9、健壮性10、高效的快速原型开发工具11、内存管理器12、解释性和(字节)编译性核心笔记:文件扩展名四、下载和安装Python1、Windows/DOS系统2、自己动手编译Python五、运行Python1、命令行上的交互式解释器Unix衍生系统(Linux,MacOSX,So
- 学习笔记01——《深入理解Java虚拟机(第三版)》第二章
码代码的小仙女
高级开发必备技能笔记java知识jvm
概述理解JVM内存管理的核心设计思想,掌握内存区域的划分原理、对象生命周期与内存溢出(OOM)的根本原因及排查方法。第二章主要是围绕Java虚拟机的运行时数据区展开,详细介绍了Java虚拟机在运行Java程序时,如何分配和管理内存空间。一、内存区域划分总览JVM内存分为线程私有和线程共享区域:线程私有:程序技术器、虚拟机栈、本地方法栈线程共享:堆、方法区二、运行时数据区详解1.程序计数器(Prog
- c++内存管理
HL_LOVE_C
C/C++开发语言c++
在C++中,内存管理是程序设计的核心问题之一,直接影响程序的性能、稳定性和安全性。C++允许开发者直接操作内存,但也要求开发者对内存分配和释放负全责。以下是C++内存管理的全面解析:一、内存布局C++程序的内存通常分为以下几个区域:内存区域用途生命周期栈(Stack)存储局部变量、函数参数、返回值等函数调用时分配,结束时释放堆(Heap)动态分配的内存(通过new/malloc申请,delete/
- 03 Python字符串与基础操作详解
全栈若城
python系列教程pythonjava开发语言
文章目录Python字符串字符串的本质字符串基本操作检查字符串编码Pythonbool布尔类型布尔值的特点布尔运算示例Python初始化变量,并不一定开辟新的内存!Python的内存管理机制内存复用示例Pythoninput()函数:获取用户输入的字符串input()函数的特点输入处理示例Pythonprint()函数高级用法print()函数的参数高级打印示例Python格式化字符串字符串格式化
- 第一个Go语言程序——Hello world
「已注销」
GOLANG笔记golang开发语言后端
Go语言简介Go语言(也被称为Golang)是一门开源的编程语言,由Google开发并于2009年首次发布;它在设计上强调简单性、高效性和安全性,旨在提高程序员的生产力和代码可读性。Go语言的设计主要针对高并发、高性能和简单的编程;具有良好的内存管理和垃圾回收机制,支持并发编程,可以轻松地使用多核CPU。Go语言官网GO语言中文网Go语言的特点简单易学:Go语言的语法简洁明了,易于学习和使用。高并
- 【类与对象】--对象之舞,类之华章,共绘C++之美
不会写代码的ys
c++
前言在C++中,构造函数、析构函数和拷贝构造函数是管理对象生命周期的关键功能。这三者在类的使用中起着至关重要的作用,它们帮助程序员负责对象的创建、内存管理以及对象间的复制。本文将详细探讨这三种函数的定义、特点以及使用示例,帮助你更好地理解这些概念。目录一、类的定义二、构造函数三、析构函数四、拷贝构造函数五、运算符重载5.1为什么需要赋值运算符重载5.2赋值运算符重载的实现5.3测试实现六、友元6.
- 什么是手机的boot分区
王景程
智能手机模块测试
什么是手机的Boot分区?Boot分区(BootPartition)是Android设备启动时最关键的分区,它包含了引导系统所需的核心文件,包括Linux内核(Kernel)和启动镜像(Ramdisk)。当你开机时,手机的Bootloader(引导加载程序)会先读取Boot分区的内容,然后加载操作系统。Boot分区的作用Boot分区的主要作用是:加载Linux内核:内核(Kernel)是Andro
- Linux 内核网络设备驱动编程:私有协议支持
109702008
编程#C语言网络人工智能linux网络
一、structnet_device的通用性与私有协议的使用structnet_device是Linux内核中用于描述网络设备的核心数据结构,它不仅限于TCP/IP协议,还可以用于支持各种类型的网络协议,包括私有协议。其原因如下:协议无关性:structnet_device的设计是通用的,它本身并不依赖于任何特定的网络协议。它提供了一个抽象的接口,用于管理网络设备的初始化、配置和数据收发等操作,而
- 如何禁止Linux内核打印,一种更为合理的Linux内核打印机制
虎斑爱读书
如何禁止Linux内核打印
2020-04-26关键字:printk_ratelimit、printk_ratelimited在Linux内核开发中,几乎所有的日志、信息的打印都是通过printk()函数实现的。printk首先会将所有来自程序的信息都放到一个缓冲区中,然后各个“监控程序”再根据自己的需要将这些信息读取出来。如console会将日志信息直接显示在屏幕上等。Linux内核中的日志缓冲区本质上就是一个环形FIFO
- early_printk函数
川渝小神丢
Linux系统
分析Linux内核启动流程时可以知道,在调用setup_arch函数之前就已经调用过printk函数了,但是这个时候的printk函数只是将打印信息放在缓存区中,并没有打印到控制台上,因为这个时候控制台还没有被初始化。只有在start_kernel函数中的console_init函数被调用后,控制台才会被注册、初始化,printk函数打印的内容才会被真正地输出到屏幕上。如果想在console_in
- Android系统架构与四大组件
Tyssen
Android开发系列教程android开发系统架构
本篇博文主要讲解Android的系统架构。对于Android开发者来说,有必要了解一下Android应用程序是如何运行的。Android是一个移动操作系统,它大致分为四层,即Linux内核层,库和运行时,Framework层和应用层。Android的体系架构鼓励系统组件重用,共享组件数据,并且定义组件的访问控制权限。可以说,这些层次结构即是相互独立,又是相互关联的。一Android系统架构1.Li
- 什么是“脚本”?
moqiyong666
Linux
脚本(Script),是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。SQL脚本,是包含一到多个sql命令的sql语句,我们可以将这些sql脚本放在一个文本文件中(我们称之为“sql脚本文件”),然后通过相关的命令执行这个sql脚本文件。Shell、Linux命令的区别:shell翻译成壳的意思,它是包裹在linux内核外层的、一个可通过一系列的linux命令对操作系统发出相关指令的人
- Linux-C/C++《C/9、信号:基础》(基本概念、信号分类、信号传递等)
YH_DevJourney
Linux-C/C++学习专栏linuxc语言c++
本章将讨论信号,虽然信号的基本概念比较简单,但是其所涉及到的细节内容比较多,所以本章篇幅也会相对比较长。事实上,在很多应用程序当中,都会存在处理异步事件这种需求,而信号提供了一种处理异步事件的方法,所以信号机制在Linux早期版本中就已经提供了支持,随着Linux内核版本的更新迭代,其对信号机制的支持更加完善。本章将会讨论如下主题内容。信号的基本概念;信号的分类、Linux提供的各种不同的信号
- 总结-常见缓存替换算法
w_w方圆
缓存替换算法缓存缓存替换算法
缓存替换算法1.总结1.总结常见的缓存替换算法除了FIFO、LRU和LFU还有下面几种:算法优点缺点适用场景FIFO简单实现可能移除重要数据嵌入式系统,简单场景LRU局部性原理良好维护成本高,占用更多存储空间内存管理,浏览器缓存LFU保留高频数据更新频率高,适应动态性差数据库缓存,文件系统Random实现简单命中率不稳定快速开发,实验性场景MRU适合最近使用数据无需保留的场景普适性不如LRU特殊访
- 科普:“git“与“github“
人工干智能
安装应用架构gitgithub
Git与GitHub的关系可以理解为:Git是一种软件工具,而GitHub则是一个在线平台,它们是“一家子”。二者的关联最直接体现在你通过Git在GitHub仓库中clone软件包到你的机器中来。具体来说:一、Git定义:Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目版本管理。它由LinusTorvalds开发,最初是为了帮助管理Linux内核开发。特点:分布式:开发者
- Java在物流自动化领域的核心优势分析-3,500台仓库机器人调度设计
爱吃青菜的大力水手
java自动化机器人
3,500台仓库机器人调度系统设计方案Java作为仓库机器人调度核心语言的综合优势分析一、Java的高性能特性支撑复杂业务场景JIT编译优化Java的即时编译器(JIT)将字节码动态编译为本地机器码,在调度机器的实时路径规划场景中,能实现每秒600,000次约束条件调整的计算效率。这种优化使Java在长期运行的高负载系统中保持稳定性能(evi3)(evi1)。内存管理机制自动化垃圾回收(GC)机制
- C与C++ —— 深度剖析区别
Exhausted、
CC++c语言c++算法开发语言
目录一、C和C++深度剖析1.编程范式2.内存管理3.标准库4.运行效率5.应用场景二、总结三、其他值得关注的差异一、C和C++深度剖析1.编程范式C:是一种结构化编程语言,以过程式编程为核心。代码以函数和模块的形式组织,程序执行流程由函数调用和控制语句来决定。这种结构化组织方式清晰易懂,适合开发相对简单的程序,比如操作系统内核和嵌入式系统。优点:代码逻辑清晰,效率高,适合底层开发。缺点:代码复用
- iText5.5.10从入门到精通:PDF文档生成全解析
带虾条酱
本文还有配套的精品资源,点击获取简介:iText是一个功能强大的Java库,可以方便地创建和修改PDF文档。本文详细讲解了iText5.5.10版本在生成PDF文档时的核心概念、常用方法以及实例应用。我们从基础的文档创建流程出发,逐步深入到文本、图像、表格等元素的添加,以及样式和布局的控制。除了基础元素处理,还涵盖了书签、链接、表单字段、数字签名等高级功能。文章强调了内存管理和性能优化的重要性,介
- 一篇文章讲清楚什么是Java的垃圾回收机制?(什么是GC?GC的基本原理是什么?什么是老年代和什么是新生代?什么时候才会发生垃圾回收?)
沐闻题
java面试GCjvm垃圾回收机制垃圾回收机制的基本原理新生代和老年代
1.什么是垃圾回收机制Java的垃圾回收机制(GarbageCollection,GC)是其内存管理的核心功能之一。通过GC,Java自动管理对象的生命周期,回收不再使用的对象所占的内存空间2.垃圾回收机制的基本原理垃圾回收的主要任务是识别和回收不再使用的对象。GC的基本工作过程包括:标记阶段:标记所有存活的对象清除阶段:回收所有未标记的对象压缩阶段(可选):整理内存碎片3.什么是新生代和老年代这
- 《JavaScript高级程序设计》——第四章:变量、作用域与内存管理
dorabighead
javascript开发语言ecmascript
《JavaScript高级程序设计》——第四章:变量、作用域与内存管理大家好!我是小哆啦,欢迎回到《JavaScript高级程序设计》的读书笔记大本营!在这章中,我们要聊的是两个让人头疼又迷人的话题——变量、作用域与内存管理。有些人一提到这些,就会感到一阵头晕目眩,恍若置身一场JavaScript版的迷宫大冒险!但今天,小哆啦会带你们轻松过关,深入了解这些概念,并且保持足够的幽默感,让你既能笑着学
- 深入解析JVM性能问题定位与优化
测试不打烊
性能测试jvm性能优化
JVM性能问题定位与优化详解:架构、内存、Linux命令与监控工具的全面解析引言Java虚拟机(JVM)是运行Java应用程序的核心组件,它管理内存、执行字节码,并提供垃圾回收机制等功能。然而,随着应用规模的增长,JVM的性能问题时常会成为系统瓶颈。为了有效定位和优化JVM性能问题,我们需要从JVM架构、内存管理、Linux系统命令,以及监控工具入手,对JVM的各类指标进行详尽的分析和优化。本文将
- C/C++编译原理
weixin_33809981
转自:http://m.blog.csdn.net/blog/business122/21722039http://m.blog.csdn.net/blog/business122/21722151C/C++编译就是要将C/C++的代码映射到相应的机器码,以及讨论其中的内存管理模式,包括内存的分配,如何使用等等,整型、数组、指针等这些在内存中的实现机制。C/C++的编译包括几个部分,分别是编译,汇
- 为什么编程语言不能无误差的表示十进制数
编程
在编程中,尤其是涉及到数值计算时,十进制数的表示问题是一个常见的技术挑战。虽然我们日常生活中使用的是十进制数,但计算机内部却使用二进制来存储和处理数据。由于十进制和二进制之间存在根本性的差异,编程语言无法无误差地表示十进制数。这一问题不仅涉及到计算机的基本存储方式,还与浮点数的表示精度和计算机的内存管理机制密切相关。在实践中,这种表示误差会影响许多领域的计算,包括财务、科学计算和工程应用。本文将深
- 深入剖析Java内存管理与垃圾回收:优化程序性能的核心技能
一碗黄焖鸡三碗米饭
Java基础知识全面解析java开发语言后端jvm
深入剖析Java内存管理与垃圾回收:优化程序性能的核心技能在现代Java开发中,内存管理与垃圾回收(GC)是至关重要的议题。良好的内存管理不仅能够有效避免内存泄漏,还能提高程序的性能。Java作为一种高效的编程语言,采用了自动垃圾回收机制(GarbageCollection),大大简化了内存管理。但这并不意味着开发者可以完全忽视内存的管理与优化。本文将深入探讨Java的内存管理机制、堆与栈的概念、
- 编程语言的深度剖析:从语法到性能优化
大梦百万秋
性能优化
引言随着软件开发的不断进化,编程语言的选择对项目的成功与否具有关键影响。今天的开发者面临着丰富多样的编程语言选择:每一种语言都有独特的优势、特性和适用场景。然而,语言的设计理念、运行机制和优化技巧背后的技术细节却常常被忽视。本文将深入剖析一些现代编程语言的技术性细节,重点关注语法设计、运行时效率、内存管理和性能优化策略。1.语法与设计理念1.1静态类型vs动态类型编程语言通常根据类型系统分为静态类
- c++ | 智能指针
常瀚中
c++开发语言后端
文章目录一、前言介绍二、auto_ptr(已废弃)三、unique_ptr右值引用:四、shared_ptr三、unique_ptr(强智能指针)四、智能指针的交叉引用五、weak_ptr(弱智能指针)其他一、前言介绍RAII是一种解决方案,是C++语言的一种管理资源、避免泄漏的惯用法。(对堆上空间进行自动化管理,利用对象自动析构的机制)智能指针的引入:动态内存管理经常会出现俩种问题:一种是忘记释
- 深入理解 Rust 中的智能指针
Hello.Reader
rustrust开发语言后端
一、什么是智能指针?智能指针是具有指针行为的数据结构,但它们与传统指针相比,提供了更多的功能。智能指针不仅拥有指向数据的能力,还可以管理内存,控制数据的所有权,并在不再需要时自动清理数据。Rust通过其独特的所有权和借用机制,引入了智能指针的使用,使得内存管理更加安全和高效。在Rust中,智能指针有两个重要特征:它们能够“拥有”数据,并且实现了Deref和Drop这两个特性(traits)。Der
- windows下源码安装golang
616050468
golang安装golang环境windows
系统: 64位win7, 开发环境:sublime text 2, go版本: 1.4.1
1. 安装前准备(gcc, gdb, git)
golang在64位系
- redis批量删除带空格的key
bylijinnan
redis
redis批量删除的通常做法:
redis-cli keys "blacklist*" | xargs redis-cli del
上面的命令在key的前后没有空格时是可以的,但有空格就不行了:
$redis-cli keys "blacklist*"
1) "blacklist:12: 361942420@qq.com
- oracle正则表达式的用法
0624chenhong
oracle正则表达式
方括号表达示
方括号表达式
描述
[[:alnum:]]
字母和数字混合的字符
[[:alpha:]]
字母字符
[[:cntrl:]]
控制字符
[[:digit:]]
数字字符
[[:graph:]]
图像字符
[[:lower:]]
小写字母字符
[[:print:]]
打印字符
[[:punct:]]
标点符号字符
[[:space:]]
- 2048源码(核心算法有,缺少几个anctionbar,以后补上)
不懂事的小屁孩
2048
2048游戏基本上有四部分组成,
1:主activity,包含游戏块的16个方格,上面统计分数的模块
2:底下的gridview,监听上下左右的滑动,进行事件处理,
3:每一个卡片,里面的内容很简单,只有一个text,记录显示的数字
4:Actionbar,是游戏用重新开始,设置等功能(这个在底下可以下载的代码里面还没有实现)
写代码的流程
1:设计游戏的布局,基本是两块,上面是分
- jquery内部链式调用机理
换个号韩国红果果
JavaScriptjquery
只需要在调用该对象合适(比如下列的setStyles)的方法后让该方法返回该对象(通过this 因为一旦一个函数称为一个对象方法的话那么在这个方法内部this(结合下面的setStyles)指向这个对象)
function create(type){
var element=document.createElement(type);
//this=element;
- 你订酒店时的每一次点击 背后都是NoSQL和云计算
蓝儿唯美
NoSQL
全球最大的在线旅游公司Expedia旗下的酒店预订公司,它运营着89个网站,跨越68个国家,三年前开始实验公有云,以求让客户在预订网站上查询假期酒店时得到更快的信息获取体验。
云端本身是用于驱动网站的部分小功能的,如搜索框的自动推荐功能,还能保证处理Hotels.com服务的季节性需求高峰整体储能。
Hotels.com的首席技术官Thierry Bedos上个月在伦敦参加“2015 Clou
- java笔记1
a-john
java
1,面向对象程序设计(Object-oriented Propramming,OOP):java就是一种面向对象程序设计。
2,对象:我们将问题空间中的元素及其在解空间中的表示称为“对象”。简单来说,对象是某个类型的实例。比如狗是一个类型,哈士奇可以是狗的一个实例,也就是对象。
3,面向对象程序设计方式的特性:
3.1 万物皆为对象。
- C语言 sizeof和strlen之间的那些事 C/C++软件开发求职面试题 必备考点(一)
aijuans
C/C++求职面试必备考点
找工作在即,以后决定每天至少写一个知识点,主要是记录,逼迫自己动手、总结加深印象。当然如果能有一言半语让他人收益,后学幸运之至也。如有错误,还希望大家帮忙指出来。感激不尽。
后学保证每个写出来的结果都是自己在电脑上亲自跑过的,咱人笨,以前学的也半吊子。很多时候只能靠运行出来的结果再反过来
- 程序员写代码时就不要管需求了吗?
asia007
程序员不能一味跟需求走
编程也有2年了,刚开始不懂的什么都跟需求走,需求是怎样就用代码实现就行,也不管这个需求是否合理,是否为较好的用户体验。当然刚开始编程都会这样,但是如果有了2年以上的工作经验的程序员只知道一味写代码,而不在写的过程中思考一下这个需求是否合理,那么,我想这个程序员就只能一辈写敲敲代码了。
我的技术不是很好,但是就不代
- Activity的四种启动模式
百合不是茶
android栈模式启动Activity的标准模式启动栈顶模式启动单例模式启动
android界面的操作就是很多个activity之间的切换,启动模式决定启动的activity的生命周期 ;
启动模式xml中配置
<activity android:name=".MainActivity" android:launchMode="standard&quo
- Spring中@Autowired标签与@Resource标签的区别
bijian1013
javaspring@Resource@Autowired@Qualifier
Spring不但支持自己定义的@Autowired注解,还支持由JSR-250规范定义的几个注解,如:@Resource、 @PostConstruct及@PreDestroy。
1. @Autowired @Autowired是Spring 提供的,需导入 Package:org.springframewo
- Changes Between SOAP 1.1 and SOAP 1.2
sunjing
ChangesEnableSOAP 1.1SOAP 1.2
JAX-WS
SOAP Version 1.2 Part 0: Primer (Second Edition)
SOAP Version 1.2 Part 1: Messaging Framework (Second Edition)
SOAP Version 1.2 Part 2: Adjuncts (Second Edition)
Which style of WSDL
- 【Hadoop二】Hadoop常用命令
bit1129
hadoop
以Hadoop运行Hadoop自带的wordcount为例,
hadoop脚本位于/home/hadoop/hadoop-2.5.2/bin/hadoop,需要说明的是,这些命令的使用必须在Hadoop已经运行的情况下才能执行
Hadoop HDFS相关命令
hadoop fs -ls
列出HDFS文件系统的第一级文件和第一级
- java异常处理(初级)
白糖_
javaDAOspring虚拟机Ajax
从学习到现在从事java开发一年多了,个人觉得对java只了解皮毛,很多东西都是用到再去慢慢学习,编程真的是一项艺术,要完成一段好的代码,需要懂得很多。
最近项目经理让我负责一个组件开发,框架都由自己搭建,最让我头疼的是异常处理,我看了一些网上的源码,发现他们对异常的处理不是很重视,研究了很久都没有找到很好的解决方案。后来有幸看到一个200W美元的项目部分源码,通过他们对异常处理的解决方案,我终
- 记录整理-工作问题
braveCS
工作
1)那位同学还是CSV文件默认Excel打开看不到全部结果。以为是没写进去。同学甲说文件应该不分大小。后来log一下原来是有写进去。只是Excel有行数限制。那位同学进步好快啊。
2)今天同学说写文件的时候提示jvm的内存溢出。我马上反应说那就改一下jvm的内存大小。同学说改用分批处理了。果然想问题还是有局限性。改jvm内存大小只能暂时地解决问题,以后要是写更大的文件还是得改内存。想问题要长远啊
- org.apache.tools.zip实现文件的压缩和解压,支持中文
bylijinnan
apache
刚开始用java.util.Zip,发现不支持中文(网上有修改的方法,但比较麻烦)
后改用org.apache.tools.zip
org.apache.tools.zip的使用网上有更简单的例子
下面的程序根据实际需求,实现了压缩指定目录下指定文件的方法
import java.io.BufferedReader;
import java.io.BufferedWrit
- 读书笔记-4
chengxuyuancsdn
读书笔记
1、JSTL 核心标签库标签
2、避免SQL注入
3、字符串逆转方法
4、字符串比较compareTo
5、字符串替换replace
6、分拆字符串
1、JSTL 核心标签库标签共有13个,
学习资料:http://www.cnblogs.com/lihuiyy/archive/2012/02/24/2366806.html
功能上分为4类:
(1)表达式控制标签:out
- [物理与电子]半导体教材的一个小问题
comsci
问题
各种模拟电子和数字电子教材中都有这个词汇-空穴
书中对这个词汇的解释是; 当电子脱离共价键的束缚成为自由电子之后,共价键中就留下一个空位,这个空位叫做空穴
我现在回过头翻大学时候的教材,觉得这个
- Flashback Database --闪回数据库
daizj
oracle闪回数据库
Flashback 技术是以Undo segment中的内容为基础的, 因此受限于UNDO_RETENTON参数。要使用flashback 的特性,必须启用自动撤销管理表空间。
在Oracle 10g中, Flash back家族分为以下成员: Flashback Database, Flashback Drop,Flashback Query(分Flashback Query,Flashbac
- 简单排序:插入排序
dieslrae
插入排序
public void insertSort(int[] array){
int temp;
for(int i=1;i<array.length;i++){
temp = array[i];
for(int k=i-1;k>=0;k--)
- C语言学习六指针小示例、一维数组名含义,定义一个函数输出数组的内容
dcj3sjt126com
c
# include <stdio.h>
int main(void)
{
int * p; //等价于 int *p 也等价于 int* p;
int i = 5;
char ch = 'A';
//p = 5; //error
//p = &ch; //error
//p = ch; //error
p = &i; //
- centos下php redis扩展的安装配置3种方法
dcj3sjt126com
redis
方法一
1.下载php redis扩展包 代码如下 复制代码
#wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
2 tar -zxvf 解压压缩包,cd /扩展包 (进入扩展包然后 运行phpize 一下是我环境中phpize的目录,/usr/local/php/bin/phpize (一定要
- 线程池(Executors)
shuizhaosi888
线程池
在java类库中,任务执行的主要抽象不是Thread,而是Executor,将任务的提交过程和执行过程解耦
public interface Executor {
void execute(Runnable command);
}
public class RunMain implements Executor{
@Override
pub
- openstack 快速安装笔记
haoningabc
openstack
前提是要配置好yum源
版本icehouse,操作系统redhat6.5
最简化安装,不要cinder和swift
三个节点
172 control节点keystone glance horizon
173 compute节点nova
173 network节点neutron
control
/etc/sysctl.conf
net.ipv4.ip_forward =
- 从c面向对象的实现理解c++的对象(二)
jimmee
C++面向对象虚函数
1. 类就可以看作一个struct,类的方法,可以理解为通过函数指针的方式实现的,类对象分配内存时,只分配成员变量的,函数指针并不需要分配额外的内存保存地址。
2. c++中类的构造函数,就是进行内存分配(malloc),调用构造函数
3. c++中类的析构函数,就时回收内存(free)
4. c++是基于栈和全局数据分配内存的,如果是一个方法内创建的对象,就直接在栈上分配内存了。
专门在
- 如何让那个一个div可以拖动
lingfeng520240
html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml
- 第10章 高级事件(中)
onestopweb
事件
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
- 计算两个经纬度之间的距离
roadrunners
计算纬度LBS经度距离
要解决这个问题的时候,到网上查了很多方案,最后计算出来的都与百度计算出来的有出入。下面这个公式计算出来的距离和百度计算出来的距离是一致的。
/**
*
* @param longitudeA
* 经度A点
* @param latitudeA
* 纬度A点
* @param longitudeB
*
- 最具争议的10个Java话题
tomcat_oracle
java
1、Java8已经到来。什么!? Java8 支持lambda。哇哦,RIP Scala! 随着Java8 的发布,出现很多关于新发布的Java8是否有潜力干掉Scala的争论,最终的结论是远远没有那么简单。Java8可能已经在Scala的lambda的包围中突围,但Java并非是函数式编程王位的真正觊觎者。
2、Java 9 即将到来
Oracle早在8月份就发布
- zoj 3826 Hierarchical Notation(模拟)
阿尔萨斯
rar
题目链接:zoj 3826 Hierarchical Notation
题目大意:给定一些结构体,结构体有value值和key值,Q次询问,输出每个key值对应的value值。
解题思路:思路很简单,写个类词法的递归函数,每次将key值映射成一个hash值,用map映射每个key的value起始终止位置,预处理完了查询就很简单了。 这题是最后10分钟出的,因为没有考虑value为{}的情