`
kjkhi
  • 浏览: 181702 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论
文章列表
      算术异常类:ArithmeticExecption  空指针异常类:NullPointerException  类型强制转换异常:ClassCastException  数组负下标异常:NegativeArrayException  数组下标越界异常:ArrayIndexOutOfBoundsException  违背安全原则异常:SecturityException  文件已结束异常:EOFException  文件未找到异常:FileNotFoundException  字符串转换为数字异常:NumberFormatException  操作数据库异常:SQLException  ...
      都知道,java里面定义变量的时候,都有两种方法。如定义一个整型变量: int a = 123;//1 Integer b = new Integer(123);//2       那么在实际应用中,应该使用那种方式呢?记得当时在做SSH整合框架开发时,在使用注解建Model中 ...
1.一对一和多对一的@JoinColumn注解的都是在“主控方”,都是本表指向外表的外键名称。 2.一对多的@JoinColumn注解在“被控方”,即一的一方,指的是外表中指向本表的外键名称。 3.多对多中,joinColumns写的都是本表在中间表的外键名称,   inverseJoinColumns写的是另一个表在中间表的外键名称。
系统调用可以简单说是用户程序使用系统资源的接口,但是用户程序一般都不是直接调用系统调用,而是通过系统API、C库等间接调用,执行内陷命令,进入核心态执行。 在Linux系统中,每个系统调用被赋予一个系统调用号。这样,通过这个独一无二的编号就可以关联一个系统调用。用户空间程序需要调用系统调用时,只需要给出其对应的系统调用号就可以。内存记录了系统调用表中所有已经注册过的系统调用的列表,存储在sys_call_table中。 用户程序通过软中断实现内陷操作。通过引发一个异常来促使系统切换到内核态去执行异常处理程序。在x86上,内陷之前,需要通过eax寄存器把系统调用号传递到内核。sys_call( ...
在开始讨论线程之前,首先我想要指出的是,在Linux系统中,内核不分为线程和进程,统一作为进程参与调度。每一个内核线程都有属于自己的task_struct结构。 线程的创建与普通的进程创建类似,只不过在调用clone()时需要传递一些参数标志来指明需要共享的资源。因为线程需要共享进程的相关资源,如打开的文件、文件系统信息等。 内核线程的创建必须要另一个内核线程创建。在现有的内核线程中创建一个新的内核线程的方法如:int kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
进程家族树 在task_struct数据结构中,我们可以通过parent和children等域,如获得当前进程的父进程:struct task_struct *my_parent = current->parent 而在Linux系统中,如前面所述,是保存在一个双向链表中的,所以可以通过以下方法获得前一个进程:list_entry(task->tasks.next,struct task_struct, task) 同样可以通过next_task(task)和prev_task(task)这两个宏实现对前一个进程和后一个进程的获取,而实际上,for_each_process(tas ...
无论是Windows还是Linux系统都涉及进程和线程的概念。进程是系统调度的最小单位,线程是系统资源分配的最小单位。进程/线程调度(低级调度)的性能直接影响操作系统的性能。以下主要想讨论以下Linux系统的进程管理。 Linux系统中通过调用fork()系统调用创建新进程的,该系统调用通过复制一个现有的进程来创建一个新进程。fork()系统调用从内核返回两次:一次回到父进程,另一次回到新的子进程。 通常,创建新的进程都是为了马上执行!在Linux中,调用exec*()这族函数可以创建新的地址空间,并把新的进程载入。进程通过调用exit()系统调用退出执行。 Linux内核把进程存放在任务 ...
Linux 内核由5 个主要的子系统组成。 (1)进程调度(SCHED)控制着进程对CPU 的访问。当需要选择下一个进程运行时,由调度程序选择最值得运行的进程。可运行进程实际是仅等待 CPU 资源的进程,如果某个进程在等待其他资源 ...
在delphi中,grid是不能够自动调整列宽度的。其中也找过很多插件,而未能找到。于是自己写了一个函数用于实现这个功能,希望能帮到有需要的人。 procedure TMainForm.FixDBGridColumnWidth(const DBGrid: TDBGrid); var i : Integer; cusWidth : Integer;//改变窗体大小后,数据表格宽度 varWidth : Integer; //每列宽度 totColumns : Integer; begin totColumns :=0; cusWidth := Abs(DBG ...
REST(Representational State Transfer) 曾经被误解为只是CRUD(增删改查),从这个层面上,好像REST只是和RPC一个层面的东西,没有什么了不起,其实这些都是对REST误读。 理解REST需要从系统集成整合以及架构的伸缩性方面入手,这方面有一篇很重要的REST博文: I finally get REST. Wow. http://www.pluralsight.com/community/blogs/tewald/archive/2007/04/26/46984.aspx 作者认为:每个通讯协议都有一个状态机,当你使用RPC时,你要做些方法来改变通讯的状 ...
对于Mysql的自动备份,我这里有两种方法: 一,使用navicat提供的计划功能,可以实现。不过问题是,必须要付费版本才能使用。 推荐第二种方法,建立一个.bat文件,在windows的计划中设计定时执行! .bat文件中执行的代码:@echo off set host=localhost set username=root set passward=ansure set database=weihe set backup_path=D:\db_backup\ echo "备份Mysql数据库..." mysqldump -h%host% -u%usern ...
之前找了很多关于更新文件上传进度条的资料,其大部分都是不断向后台获取数据实现更新的! 现在,我们使用commons-fileupload结合XMLHttpRequest实现,客户端Ajax更新上传进度,免去不断向服务器端获取数据,而影响效率。 这里使 ...
项目需求:使用Ext的GridPanel实现文件下载功能!如 首先,在gridpanel中加入链接style的button。在gridpanel的ColumnModel中renderer:function(){return "<p><button type='submit' class='link' onclick='downloadfile("+v+")'><span>下载</span></button></p>"} 加入button style。button.link { ...
项目需求:使用Ext的FormPanel,在formpanel里面定义一个Ext.ux.form.FileUploadField(由ExtJS官方提供的一个上传组件)。而服务端使用commons-fileupload.jar结合Struts2实现文件上传功能。 commons-fileupload 初始状态下最大上传文件大小为2MB。如需要修改,可在struts.xml文件中添加:<constant name="struts.multipart.maxSize" value="20971520" /> 我这里使用最大上传文件大小为20MB。 ...
需求:在客户端发送中文链接,服务端需要正确解析。 使用办法:在客户端对URL进行编码,使用JavaScript标准函数encodeURL()或者encodeURLComponent()。 两者之间的区别: encodeURL(),把URI字符串采用UTF-8编码格式转化成escape格式的字符串。不会被此方法编码的字符:! @ # $& * ( ) = : / ; ? + ‘ encodeURLComponent(),把URI字符串采用UTF-8编码格式转化成escape格式的字符串。与encodeURI()相比,这个方法将对更多的字符进行编码,比如 / 等字符。所以如果字符串里 ...
Global site tag (gtag.js) - Google Analytics