lingling

 
 

常用链接

  • 我的随笔
  • 我的评论
  • 我的参与
  • 最新评论

留言簿(1)

  • 给我留言
  • 查看公开留言
  • 查看私人留言

随笔档案

  • 2011年1月 (2)
  • 2010年12月 (5)
  • 2010年11月 (7)
  • 2010年10月 (15)

搜索

  •  

最新评论

  • 1. re: QQ发送消息[未登录]
  • X脑子有问题?
  • --1
  • 2. re: QQ发送消息
  • sdg sdgsdfgsdf
  • --风格
  • 3. re: listener监听器
  • 不是,应该是同时多个人访问一台服务器时,服务器的承受能力@咖啡
  • --风铃
  • 4. re: listener监听器[未登录]
  • @小小


    考虑并发,什么意思?如果一秒钟内同时有2人进入网站,监听不到?
  • --咖啡
  • 5. re: listener监听器
  • 初学者,没考虑到那么多@小小
  • --lingling

阅读排行榜

  • 1. 过滤器—防止未登录直接访问网站内部(2935)
  • 2. listener监听器(2190)
  • 3. Junit测试(2080)
  • 4. MVC小程序(1880)
  • 5. 邮箱自动登录(1590)

评论排行榜

  • 1. 学生成绩处理程序(7)
  • 2. listener监听器(4)
  • 3. MVC小程序(4)
  • 4. 过滤器—防止未登录直接访问网站内部(4)
  • 5. Http乱码过滤器(4)

Powered by: 博客园
模板提供:沪江博客
BlogJava | 首页 | 发新随笔 | 发新文章 | 联系 | 聚合 | 管理

String初始化
 

String是引用类型,String类中的内容一旦声明则不可改变,它是Java中共享模式一种应用。

String有两种赋值方式:

1 直接赋值    String str=”abc”;   句柄指向新开辟的内存空间

2 用new开辟空间    String str=new String(”abc”); “

abc”是匿名对象,那么在堆内存中就会有块空间是“abc”,紧接着new String("abc") 使用new在堆内存中又开辟了一个空间“abc”,最后String str1 = new String("abc") ;代码将最后生成的“abc”内存地址指向str1,最早的一个“abc”就没使用上,如图所示:

 

来看下面代码:

public class Demo {

 

   

    public static void main(String[] args) {

       String s=new String("abc");

       String s1="abc";

       String s2="abc";

       System.out.println(s==s1);

       System.out.println(s1==s2);

      

    }

 

}

运行结果为:

 

原因:==比较的是他们在堆内存中的地址,s和s1的地址不同,所以输出false。

    第二个输出true,是因为String为共享模式的一种应用,String pool中内容相同则直接指向,不会重新开辟内存空间。

posted @ 2010-10-18 23:25 向日葵 阅读(221) | 评论 (0) | 编辑 收藏
 
构造函数之员工信息处理

要求:写一个公司员工类

        数据成员: 员工号、姓名、新水、部门

        方法: 利用构造方法完成设置信息

                 A.单参,只传递员工号。则员工姓名:无名氏,新水:0,部门:未定

                 B、双参,传递员工号,姓名,则员工新水为1000,部门:后勤

                 C、四参,传递员工号,姓名,部门,新水

                 D、无参,则均为空值

         显示信息

        Main方法中; 创建两个对象,分别进行验证

  代码如下:

 

package com.dr.work;

class Employee
{
    private String empno;
    private String name;
    private float salary;
    private String dept;
    public Employee(String empno){
        this.setEmpno(empno);
        this.setName("无名氏");
        this.setSalary(0.0f);
        this.setDept("未定");
    }
    public Employee(String empno,String name){
        this.setEmpno(empno);
        this.setName(name);
        this.setSalary(0.0f);
        this.setDept("后勤");
    }
    public Employee(String empno,String name,float salary,String dept){
        this.setEmpno(empno);
        this.setName(name);
        this.setSalary(salary);
        this.setDept(dept);
    }
    public Employee(){
    }
    //显示信息
    public void showMsg(){
        System.out.println("员工信息为:");
        System.out.println("\t员工号:"+empno);
        System.out.println("\t姓名:"+name);
        System.out.println("\t新水:"+salary);
        System.out.println("\t部门:"+dept);
    }
    public void setEmpno(String a){
        empno=a;
    }
     public String getEmpno()
      {
        return empno;
      }
    public void setName(String n){
        name=n;
    }
    public String getName()
      {
        return name;
      }
    public void setSalary(float s)
      {
       if (s>=0.0f)
       {
        salary=s;
       }
     }
    public float getSalary()
    {
     return salary;
    }
     public void setDept(String d)
      {
         dept=d;
      }
     public String getDept()
      {
        return dept;
       }
     }
//主类
public class Demo07_2 {
  public static void main(String args[])
  {
    Employee e1=new Employee("e001");
    Employee e2=new Employee("e002","宋可",10000.0f,"测试部");
    e1.showMsg();
    e2.showMsg();
  }
}

posted @ 2010-10-15 15:13 向日葵 阅读(103) | 评论 (0) | 编辑 收藏
 
类与对象的区别和联系
      类是对某一类事物的描述,是抽象的、概念上的定义;对象是实际存在的该事务的每个实体,因而也称实例。

   类是一个抽象的,是一个共性的东西。

   对象是类的具体的应用,是一个个性的东西。

posted @ 2010-10-15 11:27 向日葵 阅读(177) | 评论 (1) | 编辑 收藏
 
堆栈内存管理优势

1.处理数据的速度十分快,在内存中的处理速度是仅次于寄存器中的处理速度。

2.与GC相连,垃圾回收器会自动不定时的对垃圾内存进行回收,释放内存空间,并且不会出现回收错内存的错误。

posted @ 2010-10-13 00:03 向日葵 阅读(191) | 评论 (0) | 编辑 收藏
 
对象指向

先定义一个Person类

public class Person {

String name;

int age;

void say(){

System.out.println("姓名:"+name+" 年龄"+age);

}

}

public class Demo01 {

public static void main(String[] args) {

Person p1=new Person();

Person p2=null;

p2=p1;

p1.name="张三";

p1.age=50;

p2.name="李四";

p2.age=80;

p1.say();

p2.say();

}

}

输出结果为:

1

原因为:执行p2=p1,p1的值赋给p2,p2先断开其刚才在堆内存中开辟空间的连接,再p2与p1所开辟的空间连接 ,p1、p2指向堆内存中的同一个空间,然后p2设置新值,覆盖原值。画图表示为:

4

 

 

public class Demo01 {

public static void main(String[] args) {

Person p1=new Person();

Person p2=null;

p2=p1;

p1.name="张三";

p1.age=50;

p1.say();

p2.name="李四";

p2.age=80;

p2.say();

}

}

输出结果为:

 

2

程序中先执行p2=p1,p1的值赋给p2,p2先断开其刚才在堆内存中开辟空间的连接,再p2与p1所开辟的空间连接,p1、p2指向堆内存中的同一个空间。

执行p1.say(),输出张三的信息。

5

P2设置新值,覆盖原值,再执行p2.say()输出李四的信息

7

posted @ 2010-10-12 23:53 向日葵 阅读(92) | 评论 (0) | 编辑 收藏
 
学生成绩处理程序
要求:给定一组学生的信息,包括:姓名、年龄、成绩、班级、等级。将学生的成绩划分等级,并输出。

1  新建Student类,定义学生的属性
 

package com.dr.test;

public class Student {
 private String name;
 private int age;
 private int score;
 private String department;
 private String level;
 
 public int getScore(){
  return score;
 }

 public void setScore(int score) {
  this.score = score;
 }
    public String getName(){
     return name;
    }
    public void setName(String name){
     this.name=name;
    }
    public int getAge(){
     return age;
    }
    public void setAge(int age){
     this.age=age;
    }
    public String getDepartment(){
  return department;
     
    }
    public void setDepartment(String department){
     this.department=department;
    }
    public String getLevel(){
     return level;
    }
    public void setLevel(String Level){
     this.level=level;
    }
}


2 创建StudentTest类,新建学生对象,将学生的成绩划分等级,并输出

package com.dr.test;

public class StudentTest {

 


 public static void main(String[] args) {
  Student[] stuArr=new Student[4];
 //######################################## 
  Student student=new Student();
  student.setName("宋可");
  student.setAge(23);
  student.setScore(62);
  student.setDepartment("计算机科学系");
  stuArr[0]=student;
 //#######################################  
  Student student1=new Student();
  student1.setName("田馨");
  student1.setAge(25);
  student1.setScore(80);
  student1.setDepartment("音乐系");
  stuArr[1]=student1;
 //######################################## 
  Student student2=new Student();
  student2.setName("晓枫");
  student2.setAge(30);
  student2.setScore(78);
  student2.setDepartment("美术系");
  stuArr[2]=student2;
 //########################################
        Student student3=new Student();
        student3.setName("林岚");
        student3.setAge(25);
        student3.setScore(90);
        student3.setDepartment("中文系");
        stuArr[3]=student3;
   
  for(int j=0;j<stuArr.length;j++){
         if(stuArr[j]!=null)  
    System.out.println(stuArr[j].getName()+"   年龄:"+stuArr[j].getAge()+"     成绩:"+stuArr[j].getScore()+"    班级:"+stuArr[j].getDepartment());
  }

   
     for(int i=0;i<stuArr.length;i++){
  if(stuArr[i]!=null){
   int z;
      z=stuArr[i].getScore()/10;
  switch(z){
     case(9):{
         System.out.println(stuArr[i].getName()+"等级为A");
         break;
     }
     case(8):{
         System.out.println(stuArr[i].getName()+"等级为B");
         break;
        
     }
     case(7):{
         System.out.println(stuArr[i].getName()+"等级为C");
         break;
     }
     case(6):{
         System.out.println(stuArr[i].getName()+"等级为D");
         break;
     }
     default:{
         System.out.println(stuArr[i].getName()+"等级为E");
         break;
     }
     }
 }   
 }

}
}


posted @ 2010-10-10 18:07 向日葵 阅读(254) | 评论 (7) | 编辑 收藏
 
String函数简单应用
     摘要:   1 concat 作用是将指定字符串连接到此字符串的结尾。   示例代码如下: public class Concat {           public static void main(String[] args) {      ...  阅读全文
posted @ 2010-10-10 12:58 向日葵 阅读(134) | 评论 (0) | 编辑 收藏
 
二个异常
1 空指针异常
     

 

空指针异常发生在对象为空,但是引用这个对象的方法。

代码如下:

public class Demo23 {

 

   

    public static void main(String[] args) {

       String   s   =   null;   //对象s为空(null)

       int   length   =     s.length();//发生空指针异常

       System.out.println(length);

    }

 

}运行结果如下,发生空指针异常

 

正确代码如下:

public class Demo23 {

 

   

    public static void main(String[] args) {

       String   s   =   "HelloWorld";   //对象s不为空

       int   length   =     s.length();

       System.out.println(length);

    }

 

}运行结果如下:




2 数组越界异常
 
     例如你的数据定义了5位,int i[]=new int[6],a[6],所以6这个值是越界的,i[0]到i[5]是正常范围内的,只是在运行i[6]时发生了越界现象。
     

先看如下代码:
publicclass Demo03 {

   

    public static void main(String[] args) {

       int i[]={1,2,3,4,};

       for(int x=0;x<6;x++)

       {

           System.out.print(i[x]+"\t");

       }

    }

}

 

运行时会出现如下错误:


  

  正确代码如下:
  

public class Demo03 {

 

   

    public static void main(String[] args) {

       int i[]={1,2,3,4,};

       for(int x=0;x<i.length;x++)

       {

           System.out.print(i[x]+"\t");

       }

    }

 

}

运行结果:



posted @ 2010-10-09 16:57 向日葵 阅读(82) | 评论 (0) | 编辑 收藏
 
简单模拟股票的软件
 

1 先创建Stock类,定义它的属性

package com.dr.Stock;

public class Stock {
     private int id;
     private String name;
     private int price;
     private int flag;
    
   
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public int getPrice() {
  return price;
 }
 public void setPrice(int price) {
  this.price = price;
 }
 public int getFlag() {
  return flag;
 }
 public void setFlag(int flag) {
  this.flag = flag;
 }
 
 
  
 }

 

2创建StockServer类     服务器端


 

package com.dr.Stock;

import java.util.Random;

public class StockServer {
    
 
 public static Stock[] getStock(){
  Stock stock[]=new Stock[3];
 //##################################### 
  Stock  sk=new Stock();
  sk.setId(1);
  sk.setName("ibm");
  Random rd=new Random();
  sk.setPrice(rd.nextInt(100));
  sk.setFlag(1);
  stock[0]=sk;
    //##################################  
  
  Stock  sk1=new Stock();
  sk1.setId(2);
  sk1.setName("sun");
  sk1.setPrice(rd.nextInt(100));
  sk1.setFlag(1);
  stock[1]=sk1;
  
   //##################################  
  Stock  sk2=new Stock();
  sk2.setId(3);
  sk2.setName("oracle");
  sk2.setPrice(rd.nextInt(100));
  sk2.setFlag(1);
  stock[2]=sk2;
  
  
  return stock;
  
  
  
  
  }
 }


 

3创建StockClient类   作为客户端   进行测试

package com.dr.Stock;

public class StockClient {

 
 public static void main(String[] args) {
  while(true){
   Stock sk[]=StockServer.getStock();
   for(int i=0;i<sk.length;i++){
    System.out.println("股票号:"+sk[i].getId()+"  股票名:"+sk[i].getName()+"  股票类型:"+sk[i].getFlag()+"  股票价格:"+sk[i].getPrice());
   }
   try {
    Thread.sleep(2000);
   } catch (InterruptedException e) {
    
    e.printStackTrace();
   break;
   }
  }
 }

}

posted @ 2010-10-09 15:24 向日葵 阅读(66) | 评论 (0) | 编辑 收藏
 
仅列出标题
共3页: 上一页 1 2 3