`
文章列表

js的设计缺陷

原文请搜阮一峰   一、js为什么有缺陷 1。设计阶段过于仓促 设计者只用十天时间完成js的设计,而且设计初衷只是为了完成简单的网页互动,并没有考虑复杂应用的需要 2。设计借鉴太杂 设计者本身擅长函数式编程,但由于某些原因又需要将js往面向对象上靠。又因为只想做一种简单的脚本语言就放弃了‘类’的想法,采用prototype继承模型,使这门语言显得有点四不像 3。过早的标准化 js的发展太快,乃至没时间调整设计。语言一经推出市场,立刻被广泛接受,用户量爆炸式增长,缺乏一个积累过程。并且netscape为了与微软的Jscript竞争,强势申请js的国际标准。使得js在推出一年半后 ...

异步运行

一、为什么js是单线程? 所谓单线程,是指在js引擎中负责解释执行js代码的线程只有一个,不妨叫他主线程。 但是实际上还存在其他的线程。例如:处理ajax请求的线程、处理DOM事件的线程、定时器线程、读写文件的线程等等 ...
this是javascript中的一个关键字 this的使用分为两种情况 ①在构造函数中,当使用new得到一个新的对象时,this代表新建的对象 ②当this所在函数运行时,this代表调用者。其中像test()这样直接运行的函数它的调用者就是windows,还有call、apply、bind等一些特殊例子   call、apply、bind异同 三者都是用于改变上下文环境的,即this对象的指向 网上有些文章说他们改变了作用域链,自己写了简单代码测试不是的,只是改变执行上下文中的this call、apply作用一样,区别在于接受参数方式。call是将参数按顺序传递进去,a ...
oracle分区表  通过对分区列的判断,把不同记录放到不同分区中。每个分区都是一个独立的段 ①range分区  以列值得范围作为分区的划分条件 create table test(id number,time date)partition by range (time)( partition p1 values less than (to_date('2010-10-01','yyyy-mm-dd')), partition p2 values less than (maxvalue) ) ②hash分区 对于那些无法有效划分范围的列,可以用哈希分区,oracle根据该列 ...
1.不需要声明导入java.lang包,jvm默认会自动查询该包 2.java中有名包无法引用无名包

类加载器

    博客分类:
  • jvm
本文转自http://www.cnblogs.com/MrYuan/p/4498070.html 深入探讨 Java 类加载器   类加载器(class loader)是 Java™中的一个很重要的概念。类加载器负责加载 Java 类的字节代码到 Java 虚拟机中。本文首先详细介绍了 Java 类加载器的基本 ...
《深入理解java虚拟机》一书中谈到破坏类加载器的双亲委派机制时,谈到使用线程上下文类加载器可以破坏该机制,使程序逆向使用类加载器。 那什么时候需要破坏双亲委派机制呢?其中一种情况是java提供的服务提供者接口 ...

java环境变量

      今天在测试虚拟机垃圾收集机制时运行本地的一个java程序,结果报出“找不到或无法加载主类”的错误。查了一下是classpath环境变量的问题。之前为了测试类加载机制把环境变量改了忘了改回来。。。就顺便把环境变量做个笔记 1.path变量 这个是系统自带变量,当你在cmd运行一个程序时,该程序不在当前目录就跑到path中搜索是否在其中的某个目录下。我们只要把jdk下的bin目录地址添加上去就行了。现在版本较高的jdk安装后会将java、javac等程序的快捷方式放置到一个oracle目录下的子目录,然后在path中添加该地址(唯恐人不知道oracle把sun兼并了) 2.j ...

class文件结构

    博客分类:
  • jvm
Java诞生之始就提出一个口号叫“Write once,Run anywhere”,即代码编写一次、编译一次之后就可在所有平台上通用。实现平台无关性的基石是各种平台不同的虚拟机和所有平台统一使用的程序存储格式——字节码。这里的虚拟机相当于手机充电的转换头。这些字节码是存储在class文件中的,了解class文件结构是了解jvm的基础。   class文件是不包含任何的分隔符的,因此想要虚拟机读懂它就必须严格规定文件中数据项的顺序数量以及数据存储的字节序(class文件的字节序为Big-Endian),总体结构如下表。class文件的数据类型就两种:无符号数和表。无符号数用于描述数字、索引 ...

我对流的理解

  在这里我不讨论流的分类流的定义等,只想说说在我心中流是什么。网络上很多文章在解释这一问题时会用到下面一张图,同时解释说想象在源与目的之间有一个管道,这样便于理解。我十分不同意,这个比喻看似形象,其实是隔靴搔痒避开问题本质,深思不禁会问这个管道到底是什么东西?   其实一句话就能说清楚:流是数据的有序分次操作。举例说明,本地有个txt文件内容是“ABC”,创建一个字节输入流对象将其读取到程序中(即内存里),并新建一个StringBuffer对象存储数据。这一过程本质其实就是复制粘贴,只不过我们按照文件中数据的存储顺序依次复制粘贴其中的"A">"B&q ...
阅读startup.bat文件。 首先判断CATALINA_HOME值是否为空,如果为空就将当前目录(startup.bat所在目录)设置为CATALINA_HOME的值,接着判断该目录下是否存在bin\catalina.bat,如果不存在,将当前目录的父目录设为CATALINA_HOME的值。如果存 ...
conf目录下的context.xml是tomcat公用的环境配置。tocmat服务器会定时扫描这个文件,一旦发现文件被修改了(查看最后修改时间?),就会自动重新加载这个文件,不需要重启服务器   我们主要关注配置文件中根节点下的WatchedResource子节点,conf中context.xml相关默认配置如下。即优先读取项目中WEB-INF目录下的web.xml文件,若不存在则读取conf目录下的web.xml文件作为载入文件 <Context> <WatchedResource>WEB-INF/web.xml</WatchedResour ...
tomcat默认读取webapps文件夹下项目,是因为server.xml中如下配置,appBase设置了项目目录地址。 <Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> </Host>   想要修改项目部署地址并使tomcat发布,有三种方式,本人都已验证(tomcat8.0)   1.很明显就是修改上述的appBase,将值改为与tomcat主目录的相对路径。 如:在 ...
tomcat主目录中有文件夹bin、conf、lib、webapps、temp、work、logs   1.bin:该目录主要用来存放tomcat命令,主要有两类,.sh结尾(linux命令)和.bat结尾(windows命令)   2.conf:用来存放tomcat的配置文件。主要的有server.xml、web.xml、context.xml、tomcat-users.xml等。各配置文件具体作用请看下篇   3.lib:用来存放tomcat运行需要的jar包   4.logs:用于存放tomcat运行过程中产生的日志文件,包括控制台输出的日志。 在windows环境中, ...
java中堆栈对比   栈的优点是存取速度快,至少比堆快。但由于栈自身数据结构的特点,导致存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。(这里就可见方法栈为什么用stack这种数据结构了,首先每个方法对应的 ...
Global site tag (gtag.js) - Google Analytics