在J2ME中,主要有三种方法实现多线程

我们知道,在操作系统级别上软件的运行一般都是以进程为单位,而在每个进程的运行过程中允许同时并发执行多个不同线程,这就使得一个程序能同时执行不同的操作。使用多线程的目的是为了最大限度地利用计算机CPU资源。JAVA程序字节码最终是在JVM虚拟机下运行的,同一虚拟机进程中的不同操作都是通过多线程来运行的。在JAVA虚拟机中,线程常用有单线程和多线程,单线程指程序执行过程只是一个有效操作的序列,不同操作都有着明确的先后顺序;而多线程允许同时进行着不同的操作,这些不同的操作同时并发进行着,并由CPU时钟频率根据不同的调度方式对他们进行执行调度。

在JAVA语言中提供了丰富的多线程操纵接口,提供了各类不同的线程实现方法供我们选择,功能非常强大。在手机软件设计中,由于同样需要执行网络连接(基于HTTP的高级Internet协议通讯)、UI调度等待、UI显示幻化、游戏控制等操作需要通过后台的数据运算或UI不断更新等操作。因此在J2ME中,KVM虚拟机也提供了功能强大的多线程API,使我们同样能在J2ME中实现线程的并发运算。

在J2ME中,主要有以下三种方法实现多线程。

一、继承Thread类(java.lang.Thread)

Tomcat里设置session过期时间方法介绍

由于session值之前没有设置,以至于刚登录的网站,不到一分钟就超时了,总结了一下,原来是session过期的原因,以下是设置session时间的3个方法:

1. 在tomcat——>conf——>servler.xml文件中定义:

<Context path="/test" docBase="/test"   
  defaultSessionTimeOut="3600" isWARExpanded="true"   
  isWARValidated="false" isInvokerEnabled="true"   
  isWorkDirPersistent="false"/> 
defaultSessionTimeOut="3600" 

2. 在web.xml中定义:

<session-config>   
<session-timeout>20</session-timeout>   
</session-config> 

3. 在程序中定义:

session.setMaxInactiveInterval(30*60); 

设置单位为秒,设置为-1永不过期

不知道这种设置会不会真正地起到作用的哦!

常用的Struts标签库

常用的Struts标签库有以下五大类:
1.HTML Tag:
用来创建能够和Struts框架以及其它相应的HTML标签交互的HTML输入表单;
如:

<html:form></html:form>,<html:text/>,
<html:password/>,<html:radio/>,
<html:checkbox/>,<htmlmultibox>        

2.Bean Tag
该标签库包含的标签可以用来创建bean、访问bean和访问bean的属性。
如:

<bean:write/>:用于将bean的属性输送到jsp页面,<bean:define/>定义一个新的bean

3.Logic Tag
该标签库包含的标签可以用来进行逻辑判断、集合迭代和流程控制。
如:
:用来循环迭代,
:用来进行逻辑判断

4.Nested:增强对其他Struts标签的嵌套使用能力
该标签库建立在前三个标签库的基础上,具有前三个标签库的所有功能,只是允许标签间的嵌套。

用多线程来实现并发多连接

Java多个客户端同时连接服务端,在现实生活中用得比较多。同时执行多项任务,第一想到的当然是多线程了。下面用多线程来实现并发多连接。
[code]
import java.net.*;
import java.io.*;
public class ThreadServer extends Thread{ private Socket client;
public ThreadServer(Socket c) {
this.client=c; }
public void run() {
try {
BufferedReader in=new BufferedReader(new InputStreamReader(client.getInputStream()));
PrintWriter out=new PrintWriter(client.getOutputStream());
//Mutil User but can't parallel
while (true) {

Java自身独有的特点介绍

Java语言可以说是当下最流行的开发语言了。能够脱颖而出,成为佼佼者,那是因为Java有着自身独有的特点。下面是Java的12大特色总结:

1.Java是简单的

Java与C++极为相似,但却简单得多。高级编程语言的所有特性中,不是绝对需要的都已删去了。例如,Java没有算符过载、标题文件、预处理、指针运算、结构、联合、多维数组、模板及隐式类型变换。如果你知道一点C、C++或Pascal,你很快就会驾驭Java。这里是一个简单的JavaHelloWorld程序:

publicclassHelloInternet
 {
  publicstaticvoidmain(Stringargv[])
   {
     System.out.println(“HelloIn-ternet!”)
   }
 } 

2.Java是面向对象的

Java是一种面向对象的编程语言。除了简单的类型,如数字和布尔算子之外,Java中的大部分都是对象。

正如任何面向对象的语言一样,Java代码也按类组织。每个类定义一组规定对象行为的方法。一个类可以继承另一个类的行为。在类的根层次上,通常是类对象。

提高开发水平的十大要诀

【转】在当今的IT就业市场,有人欢喜有人忧。有人对目前的工作和薪水很满意,有人目前正面临着下岗,或者已经下岗……

可能你是公司里唯一谙熟某项关键技术的高手,缺了你,公司便玩不转了;也可能你所在的公司对你现有的专业技能高枕无忧,认为你在任期内足以胜任公司给你的开发任务(当然就不会再花银子去培训你啦)。

不要告诉我你们公司对原来用VB3开发的业务处理系统很满意,而你呢,也认为自己除了用C语言开发程序以外,不会再去做别的什么事情。

你是不是对.NET和Java为争夺开发工具市场撕破脸皮而熟视无睹,你是不是对XML将要取代关系数据库而无动于衷以及不屑一顾。你是不是认为你能用汇编或C开发任何东西,所以觉得其它开发工具都不再重要……

如果真是这样,那么你离失业的日子不远了

俗话说--未雨绸缪……

想一想如果你现在失业没有工作会怎么样,

想一想现在还有如此之多的弟兄们为了找一个饭碗而四处奔波。

想一想如果现在你们公司为了抢占市场,突然要进行技术转向,你该怎么办?

想一想你现在为了自己的前途,突然需要改变技术领域,你该怎么办?或者你不满足于现在自己的知识结构,想要再充实一下,但又不知选择那些内容来学习。那么继续往下看,并一起参加讨论吧,相信会有收获的。

如何搭建JSP动态网站环境

Sun推出的JSP(Java Server Pages)是一种执行于服务器端的动态网页开发技术,它基于Java技术。执行JSP时需要在Web服务器上架设一个编译JSP网页的引擎。配置 JSP 环境可以有多种途径,但主要工作就是安装和配置Web服务器和JSP引擎。

下面就以Tomcat作为JSP引擎,配合Tomcat、Apache、IIS这三种Web服务器来讲述3种搭建JSP运行环境的方案。

一、相关软件介绍

1、 J2SDK:Java2的软件开发工具,是Java应用程序的基础。JSP是基于Java技术的,所以配置JSP环境之前必须要安装J2SDK。

2、 Apache服务器:Apache组织开发的一种常用Web服务器,提供Web服务。

Basic test for Java

1.简述逻辑操作(&,|,^)与条件操作(&&,||)的区别。(15分)

2.下面程序运行会发生什么结果?如果有错误,如何改正? (15分)

interface  A{ 
  int x = 0; 
} 
class B{ 
  int x =1; 
} 
class C 
    extends B implements A { 
  public void pX(){ 
    System.out.println(x); 
  } 
  public static void main(String[] args) { 
    new C().pX(); 
  } 
} 
} 

3.简述 Java Server Page 和 Servlet 的联系和区别。(20分)

4.XML文档定义有几种形式?它们之间有何本质区别?

解析XML文档有哪几种方式?(20分)

5.简述synchronized和java.util.concurrent.locks.Lock的异同 ?(15分)

6.EJB规范规定EJB中禁止的操作有哪些?(15分)

最后还有一题考考你的眼力:
[code]
public String toString(){

利用反模式提高编程的方法

 设计模式对软件开发来说很重要,这一点从它在技术贸易新闻中所占的数量就可见一斑。不过,鉴于其在开发过程中的实用性,设计模式只解决了问题的一半。反模式 ― 描述“对产生绝对负面结果的问题的一种常用解决方案” ― 旨在通过向 Java 程序员展示如何避免常见的 Java 陷阱来解决问题的另一半。

  使用设计模式重复成功策略

  我在观察周界瀑布上的漂流时,想起了我所了解的事情。从和别人的谈话中,我了解到所有成功的漂流都是从第三个狭缝的右侧过去的,而且我必须快速地冲过急流,以避免碰上瀑布下浅水上面的石块。这些经验增强了我的信心,我不再理会旋涡的危险,冲进了急流的主干道。

  虽然我在这些模式的术语中并没有考虑到这一点,我还是在使用设计模式。我将自己的策略建立在那些在我之前成功地通过急流的漂流者的经验之上。设计模式给予我信心,使我能够通过一个原本超越我技能水平之上的急流。我经常将这些相同的原理应用到编程和体系结构中;您可以通过观察一个策略反复的成功结果来学着解决给定的问题。有了设计模式,结果是肯定的。您可以利用自己的经验、观摩导师,或是从书上学习专家是如何做的。

轻易地寻找bean的Home接口

EJB 错误?不要慌!

  您已经在自己所钟爱的 Java 书籍中读过了关于企业 Javabean 技术的那一章,也已经练习过了简单的 HelloWorld bean,并遵循所建议的部署过程发布了它。现在您得编写一个客户机,以便通过这个客户机来调用这个杰作。因此您写出了类似清单 1 中的代码:

  清单 1. 一个调用 bean 的非常简单的客户机
[code]
1 InitialContext ic = new InitialContext();
2 Object or = ic.lookup("ejb/HelloWorldHome");
3 if (or != null) {
4 // Narrow the return object to the Home class type
5 HelloWorldHome home =
6 (HelloWorldHome)PortableRemoteObject.narrow(or,
7 HelloWorldHome.class);
8 // Create an EJB object instance using the home interface.
9 HelloWorld hw = home.create();

同步内容