ios 沙盒 NSCoding(相当于JAVA对象序列化) 归档 数据存储

通过NSCoding能实现像JAVA一样能够实现对象的序列化,可以保存对象到文件里。 NSCoding跟其他存储方式略有不同,他可以存储对象对象存储的条件是:对象需要遵守NSCoding协议存储的时候需要调用encodeWithCoder方法读取的时候需要调用initWithCoder方法[NSKeyedArchiverarchiveRootObject:stutoFile:path];存储 NSKeyedUnarchiverunarchiveObjectWithFile:path读取对象代码 [objc] viewplaincopy #import <Foundation/Foundation.h>    @interface MJStudent : NSObject  <NSCoding>  @property (nonatomic, copy) NSStrin...

java Tomcat数据库连接池

1.在tomcat服务器目录下面的conf中找到一个叫Context.xml的配置文件,在其中加入以下代码 <Resource name="jdbc/books" auth="Container"type="javax.sql.DataSource" maxActive="100" maxIdle="30" maxWait="10000" username="sa" password="120010" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://localhost:1433;DatabaseName=news"/>参数含义:JNDI(javanaminganddirectoryinterface):Java命名和目录接口maxActive="100"表示并发情况下最大可从连接池中获取的连接数。如果数据库不是单独,供一个应用使用,通过设置maxActiv...

JNDI:对java:comp/env的研究

这两天研究了一下context.lookup("java:comp/env/XXX")和直接context.lookup("XXX")的区别 网上关于这两个的文章也很多,但是都说得很难理解,比如什么ENC环境啊什么的,各种概念。 其实说得简单点:context.lookup("java:comp/env/XXX")只能用在J2EE环境,即是如果你自己写一个main函数,想通过context.lookup("java:comp/env/XXX")这样的方式来访问JNDI服务,这是不可能的。 因为:java:comp/env/是一个J2EE环境的定义,说白了就是代表当前J2EE应用的环境,比如你自己项目的Web环境或者是EJB环境,那是不是只要是个Web项目,就能用context.lookup("java:comp/env/XXX")这种方式访问JNDI服务了呢?也不是!!! 使用这样的方式必须做一次当前应用环境到资源名的映射。 在web.xml文件中有这样的标签: <resource-env-ref></res...

tomcat部署javaweb项目的三种方式

一、将项目文件夹或war包直接拷贝到tomcat的webapps下二、在TomcatconfCatalinalocalhost下建立xml文件修改内容如下<Contextpath="/webproject"reloadable="true"docBase="C:workspacewebproject"workDir="C:workspacewebprojectwork"/>其中:path为http://localhost:8080/后的项目名docBase为你编辑项目的地址workDir为tomcat编译jsp存放的地址如果用eclipse+tomcat,记得配置contextdirectory指向xml所在文件夹,这种context片断提供了一种便利的方法来部署web应用,不需要编辑server.xml 优点:可以定义别名。服务器端运行的项目名称为path,外部访问的URL则使用XML的文件名。这个方法很方便的隐藏了项目的名称,对一些项目名称被固定不能更换,但外部访问时又想换个路径,非常有效。 三、在Tomcat的server.xml文件中Host节点...

java 使用正则表达式从网页上提取网站标题

如何从网页上抓取有价值的东西?看懂了下面的程序(非常简单),想从网页上抓取什么信息(标题、内容、Email、价格等)就能抓取什么信息。packagecatchhtml;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.MalformedURLException;importjava.net.URL;importjava.util.ArrayList;importjava.util.List;importjava.util.regex.Matcher;importjava.util.regex.Pattern;publicclassGetHtmlTitle{publicGetHtmlTitle(StringhtmlUrl){System.out.println("/n------------开始读取网页("+htmlUrl+")-----------");StringhtmlSource="";htmlSource=getHtmlSou...

***JAVA多线程的应用场景和应用目的举例

多线程使用的主要目的在于:1、吞吐量:你做WEB,容器帮你做了多线程,但是他只能帮你做请求层面的。简单的说,可能就是一个请求一个线程。或多个请求一个线程。如果是单线程,那同时只能处理一个用户的请求。2、伸缩性:也就是说,你可以通过增加CPU核数来提升性能。如果是单线程,那程序执行到死也就利用了单核,肯定没办法通过增加CPU核数来提升性能。鉴于你是做WEB的,第1点可能你几乎不涉及。那这里我就讲第二点吧。--举个简单的例子:假设有个请求,这个请求服务端的处理需要执行3个很缓慢的IO操作(比如数据库查询或文件查询),那么正常的顺序可能是(括号里面代表执行时间):a、读取文件1  (10ms)b、处理1的数据(1ms)c、读取文件2  (10ms)d、处理2的数据(1ms)e、读取文件3  (10ms)f、处理3的数据(1ms)g、整合1、2、3的数据结果 (1ms)单线程总共就需要34ms。那如果你在这个请求内,把ab、cd、ef分别分给3个线程去做,就只需要12ms了。所以多线程不是没怎么用,而是,你平常要善于发现一些...

***Java多线程发展简史

http://blog.jobbole.com/28297/本文来自四火的博客(@RayChase),由@_Zhijun 推荐这篇文章,大部分内容,是周五我做的一个关于如何进行Java多线程编程的KnowledgeSharing的一个整理,我希望能对Java从第一个版本开始,在多线程编程方面的大事件和发展脉络有一个描述,并且提及一些在多线程编程方面常见的问题。对于Java程序员来说,如果从历史的角度去了解一门语言一个特性的演进,或许能有不同收获。引言首先问这样一个问题,如果提到Java多线程编程,你会想到什么?●volatile、synchronized关键字?● 竞争和同步?● 锁机制?● 线程安全问题?● 线程池和队列?好吧,请原谅我在这里卖的关子,其实这些都对,但是又不足够全面,如果我们这样来谈论Java多线程会不会全面一些:1.模型:JMM(Java内存模型)和JCM(Java并发模型)2.使用:JDK中的并发包3.实践:怎样写线程安全的代码4.除错:使用工具来分析并发问题5.……可是,这未免太死板了...

***JAVA多线程和并发基础面试问答

线程和并发问题是Java技术面试中面试官比较喜欢问的问题之一。在这里,从面试的角度列出了大部分重要的问题,但是你仍然应该牢固的掌握Java线程基础知识来对应日后碰到的问题。(校对注:非常赞同这个观点)1.进程和线程之间有什么不同?一个进程是一个独立(selfcontained)的运行环境,它可以被看作一个程序或者一个应用。而线程是在进程中执行的一个任务。Java运行环境是一个包含了不同的类和程序的单一进程。线程可以被称为轻量级进程。线程需要较少的资源来创建和驻留在进程中,并且可以共享进程中的资源。2.多线程编程的好处是什么?在多线程程序中,多个线程被并发的执行以提高程序的效率,CPU不会因为某个线程需要等待资源而进入空闲状态。多个线程共享堆内存(heapmemory),因此创建多个线程去执行一些任务会比创建多个进程更好。举个例子,Servlets比CGI更好,是因为Servlets支持多线程而CGI不支持。3.用户线程和守护线程有什么区别?当我们在Java程序中创建一个线程,它就被称为用户线程。一个守护线程是在后台执行并且不会阻止JVM终止的线程。当没有用户线程在运行的时候,JVM...

***Java 多线程 并发编程

一、多线程1、操作系统有两个容易混淆的概念,进程和线程。进程:一个计算机程序的运行实例,包含了需要执行的指令;有自己的独立地址空间,包含程序内容和数据;不同进程的地址空间是互相隔离的;进程拥有各种资源和状态信息,包括打开的文件、子进程和信号处理。线程:表示程序的执行流程,是CPU调度执行的基本单位;线程有自己的程序计数器、寄存器、堆栈和帧。同一进程中的线程共用相同的地址空间,同时共享进进程锁拥有的内存和其他资源。2、Java标准库提供了进程和线程相关的API,进程主要包括表示进程的java.lang.Process类和创建进程的java.lang.ProcessBuilder类;表示线程的是java.lang.Thread类,在虚拟机启动之后,通常只有Java类的main方法这个普通线程运行,运行时可以创建和启动新的线程;还有一类守护线程(damonthread),守护线程在后台运行,提供程序运行时所需的服务。当虚拟机中运行的所有线程都是守护线程时,虚拟机终止运行。3、线程间的可见性:一个线程对进程中共享的数据的修改,是否对另一个线程可见可见性问题:a、CPU采用时间片轮转等不同算法来...

JAVA面试题:69道Spring面试题和答案

Spring概述依赖注入SpringbeansSpring注解Spring数据访问Spring面向切面编程(AOP)SpringMVC1. 什么是spring?Spring 是个java企业级应用的开源开发框架。Spring主要用来开发Java应用,但是有些扩展是针对构建J2EE平台的web应用。Spring 框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。 2. 使用Spring框架的好处是什么?轻量:Spring 是轻量的,基本的版本大约2MB。控制反转:Spring通过控制反转实现了松散耦合,对象们给出它们的依赖,而不是创建或查找依赖的对象们。面向切面的编程(AOP):Spring支持面向切面的编程,并且把应用业务逻辑和系统服务分开。容器:Spring 包含并管理应用中对象的生命周期和配置。MVC框架:Spring的WEB框架是个精心设计的框架,是Web框架的一个很好的替代品。事务管理:Spring 提供一个持续的事务管理接口,可以扩展到上至本地事务下至全局事务...

JAVA试题:equals()方法和== 区别

http://bbs.csdn.net/topics/390000725 总结:equals在没重写之前和==一样,重写之后,equals只要内容一样即为trueequals跟==一般情况下是等价的,但是对于String类型,它重写了equals方法,比较的是内容。默认情况下两个都是比较的引用地址,除非你重写equals方法。 equals源码:publicbooleanequals(ObjectanObject){if(this==anObject){returntrue;}if(anObjectinstanceofString){StringanotherString=(String)anObject;intn=count;if(n==anotherString.count){charv1[]=value;charv2[]=anotherString.value;inti=offset;intj=anotherString.offset;while(n--!=0){if(v1[i++]!=v2[j++])returnfalse;}returntrue;}}ret...

JAVA试题:Spring中bean的生命周期

Spring中bean的生命周期短暂吗?在spring中,从BeanFactory或ApplicationContext取得的实例为Singleton,也就是预设为每一个Bean的别名只能维持一个实例,而不是每次都产生一个新的对象使用Singleton模式产生单一实例,对单线程的程序说并不会有什么问题,但对于多线程的程序,就必须注意安全(Thread-safe)的议题,防止多个线程同时存取共享资源所引发的数据不同步问题。然而在spring中可以设定每次从BeanFactory或ApplicationContext指定别名并取得Bean时都产生一个新的实例:例如: 在spring中,singleton属性默认是true,只有设定为false,则每次指定别名取得的Bean时都会产生一个新的实例一个Bean从创建到销毁,如果是用BeanFactory来生成,管理Bean的话,会经历几个执行阶段(如图1.1):  1:Bean的建立:容器寻找Bean的定义信息并将其实例化。2:属性注入:使用依赖注入,Spring按照Bean定义信息配置Bean所有属性3:Bean...

JAVA试题:String 堆内存和栈内存

java把内存划分为两种:一种是栈(stack)内存,一种是堆(heap)内存 在函数中定义的一些基本类型的变量和对象的引用变量都在栈内存中分配,当在一段代码块定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量所分配的内存空间,该内存空间可以立即被另作他用 堆内存用来存放由new创建的对象和数组,在堆中分配的内存,由jvm(javavirtualmachine)的自动垃圾回收器来管理,在堆中产生了一个数组或对象后,还可以在栈中定义一个特殊的变量,让栈中这个变量的取值等于数组或对象在堆内存中的首地址,栈中的这个变量就成了数组或对象的引用变量。引用变量就相当于是为数组或对象起的一个名称,以后就可以在程序中使用栈中的引用变量来访问堆中的数组或对象 具体地说:栈和堆都是java用来在Ram中存放数据的地方,与c++不同,java自动管理栈和堆,程序员不能直接地设置栈或堆。 java的堆是一个运行时数据区,类的对象从中分配空间。这些对象通过new、newarray、anewarray、multiane...

Java中常用的加密方法(JDK)

加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密和单向加密,而双向加密又分为对称加密和非对称加密(有些资料将加密直接分为对称加密和非对称加密)。 双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧。具体区分可以参考: (本人解释不清呢……) http://security.group.iteye.com/group/wiki/1710-one-way-encryption-algorithm 一、双向加密 (一)、对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。&...

JAVA实现AES加密

       上次介绍了《JAVA实现DES加密》,中间提到近些年DES使用越来越少,原因就在于其使用56位密钥,比较容易被破解,近些年来逐渐被AES替代,AES已经变成目前对称加密中最流行算法之一;AES可以使用128、192、和256位密钥,并且用128位分组加密和解密数据。本文就简单介绍如何通过JAVA实现AES加密。闲话少许,掠过AES加密原理及算法,关于这些直接搜索专业网站吧,我们直接看JAVA的具体实现。2.1加密代码有详细解释,不多废话。/**  * 加密  *   * @param content 需要加密的内容  * @param password  加密密码  * @return  */  public static byte[] ...
首页上一页...570571572573574...下一页尾页