/*
*String类和StringBuffer类
* 位于java.lang包中
* String类对象中的内容一旦被初始化就不能再改变
* StringBuffer类中用于封装内容可以改变的字符串
* toString()方法转换成String类型
* String x= "a" + 4 + "c"; 编译时等效于
* Stirng x = new StringBuffer().append("a").append(4).append("C").toString();
*
*字符串常量(如"hello")实际上是一种特殊的匿名String对象,比较下面的两种情况差导
* String s1 = "hello"; String s2 = "hello";
* 这种情况这两个匿名函数是相等的,因为会将内容相同的常量指向同一个地址
* String s1 = new String("hello");
* String s2 = new String("hello");
* 这种情况两种类型是不相等的,因为内存地址不一样
*
* 编程实例:逐行读取键盘输入,直到输入内容为"bye"时 ,结束程序
*
*
*String 类的常州用成员方法
* 构造方法:
* String(byte[] bytes, int offset, int length);
*
* equalsIgnoreCase 方法与equal方法一样,只是不区分大小写
*
* indexOf(int ch) 方法,用于返回一个字符大某一个字符串中首次出现的位置
*
* substring(int beginIndex)方法
* substring(int beginIndex, int endIndex);
*
*
*
* 基本数据类型的对象包装类
*
* 基本数据类型包装类的作用
* 基本数据类型 包装类
* boolean Boolean
* byte Byte
* char Character
* short Short
* int Integer
* long Long
* float Float
* double Double
*
*
* 将字符串转换成整数的编程举例
* 在屏幕上打印出一个星号(*)组成的矩形,矩形的宽度和高度通过
*启动程序时传递给main方法的参数指定,并比较下面两段代码的运行效率
*
* String sb = new String();
* for(int j=0; j<w; j++)
* {
sb = sb + '*';
} StringBuffer sb = new StringBuffer();
for(int j=0; j<w; j++)
{
sb.append('*');
}
*
*
*
*
* 集合类
* 集合类用于存储一组对象,其中的每个对象称之为元素
* 经常会用到的有Vector, Enumeration, ArrayList
* Collection lterator, Set, List等集合类和接口
*
* 1 Vector类与Enumeration接口
* 编程举例q:将键盘上输入的一个数字序列中的每位数字存储在Vector对象中,然后在屏幕上打印出每位数字相加的结果
* 例如:输入32 打印出5
* 首先输入的整数也就是ASSIC码转换为Integer对象保存到Vector中
* 然后用Enumberation接口方法来循环整个Vector
* Enumberation.hasMoreElements();如果没有元素时返回false,如果还有元素返回true
* Enumberation.nextElements(); 返回当前位标的值
*
*
*
*
*Collection接口与Iterator接口
* 编程例举:用ArrayList和Iterator改写上面的例子程序
*
*
*Collection Set, List 的区别如下
* Collection 是Set List的父类
*
* Collection各元素对象之间没有指定的顺序,允许有重复元素和多个null元素对象
* Set各元素对象之间没有指定的顺序,
* 不允许有重复元素,最多允许有一个null元素对象
* List各元素对象之间有指定的顺序,允许有重复元素和多个null元素对象
*
* ArrayList也是实现了一个List的一个类
*
*
*
* hashTable类
* Hashtable类不仅可以象Vector一样动态存储一系列的对象
* 而且对存储的每一个对象(称为值)都要安排一个对象(
称为键字)与之相关支付
Hashtable numbers = new Hashtable();
numbers.put("one", new Integer(1));
numbres.put("two", new Integer(2));
numbers.put("three", new Integer(3));
Integer n = (Integer)numbres.get("two");
if(n!=null){
System.out.println("two="+n);
} *
* 用作关键字的类必须覆盖Object.hashCode方法和
* Ojbect.equals方法
*
*
*
*Properties类
* Properties类是hashTable的子类
* 增加了将Hashtable对象中的关键字和值保存到文件和从文件中读取关键字的值到Hashtable对象中的方法
*
* 如果要用Properties.store方法存储Properties对象中的内容,每个属性的关键字和值都必须是String类型
*
* 编程举例:使用Properties把程序的启动运行次数记录在某个文件中,每次运行时打印出它的运行次数
*
*
*
*System与Runtime类
*
*System类
* exit方法
* currentTimeMillis方法
* Java虚拟机的系统属性
* 设备虚拟机的系统属性
* java -DAAA=b -DBBB=a MyClass
* getProperties和setProperties方法主要是来获取或设置java虚拟机中的系统属性
*
*
*Runtime类
* Runtime.getRuntime静态方法
*
*编程实例:在java程序中启动一个Windows记事本程序的支行实例
*并在该运行实例中打开这个java程序的源文件
*启动的记事本程序5秒钟后被关闭
*
*
*与日期和时间有关的类
* 最常用的几个类: Date, DateFormat和Calendar
*
*Calendar类
* Calendar.add方法
* Calendar.get方法
* Calendar.set方法
* Calendar.getInstance静态方法
* GregorianCalendar子类
*
* 编程实例:
* 计算出距当前日期时间315天后的日期时间
* 并用"XXXX年xx月xx日xx小时: xx分: xx秒"的格式输出
*
* Date类
* java.text.DataFormat与java.text.SimpleDateFormat子类
* 编程实例:
* 将"2002-03-15"格式的日期字符串转换成
* "2002年03月15日"的格式
*
*
*Timer与TimerTask类
* schedule方法主要有如下几种重载形式:
* schedule(TimerTask task, long delay)
* schedule(TimerTask task, Date time)
* schedule(TimerTask task, long delay, long period)
* schedule(TimerTask task, Date firstTime, long period)
*
*TimerTask类实现了Runnable接口,要执行的任务由它里面实现的run方法来完成
*
* 编程实例,程序启动运行后30秒启动Windows自带的计算器程序
*
*
*Math与Random类
* Math类包含了所有用于几何和三角运算的方法
* Random类是一个伪随机数产生器
*
* 学习API的方法
* 有了某一领域的专业知识,再参看一些范例程序,才能更容易掌握和理解一些新的API类
* 不要看什么Java API大全之类的书籍
* 结交一些程序员朋友,或上一些技术论坛
* 不能纸上谈兵,要敢于动手实践
*
* 1 简述一下你是如何理解API的
* 就是java为开发者提供大量的类,方便开发者调用
*
* 2 当你要接着以前保存的一个工程继承工和时,应该用JCreator Pror打开工程主目录下的哪里个文件呢?
* .jcp文件
*
*
* 3 查阅JDK文档,通读String和StringBuffer这两个类的所有方法,总结一下这两个类能对字符串进行哪里些处理,了解String类的所有方法后,
* 如果有人问:"String类对象中的内容一旦被初始化就不能改变,那么String类中怎么还会有replace和toUpperCase方法呢?这两个方法都要改变字符串中的内容啊?"
* 你该如何回答这个问题,
* 因为replace以后返回的是一个新的new String对象,
* 是否可以这样理解,string里面的都是常量,那么a = string("bac"); 与 b = string("a");中的a的内存地址是一样的?
*
* 除了可以在JDK文档中仔细阅读这两个方法的帮助外,还可以从JDK安装目录下的src.zip文件件中,查看java.lang.String类的源文代码,了解这两个方法的内部实现
*
*4 在JDK文档中查看Integer类的帮助,至少例出将字符串转换成整数的三种方式
* 查看HomeWork项目
*
*5 Vector和ArrayList的有什么重要的区别,在什么情况下该使用Vector,在什么情况下该使用ArrayList?
* 区别:Vector来能数值为null的值
* 但ArrayList可以有多个值为null和键值
*   
*
*6 编写一个能用作Hashtable关键字的类,其中包含String name 和int age这两个成员变量,并编写出验证该关键类是否正确的测试代码
*
*
*7 编写打印当前虚拟机的所有系统属性的程序,并在启动这个程序时,为Java虚拟机增加一个系统属性
*
*8 为什么时候Runtime类被设计成不能在程序中直接创建它的实例对000000000000000000000000000000000000000000000000000000000000000000象?java设计者又是通过什么样的方式来保证在程序中只能有一个Runtime实例对象的呢?
*
*9 修改前面讲解的Timer与TimerTask类的例子程序代码,让该程序启动windows自带的计算器程序后立即结束
*
*
**/
package org.it315.sencondproj; public class SencondDemo {
public int x = 1;
/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
if(args.length > 0)
{
System.out.println("the first Param is "+args[0]);
}else{
new SencondDemo().callA(new A());
}
} /**
* Method callA
*
*
* @param a
*
*/
public static void callA(A a) {
// TODO: Add your code here
a.sayHello();
}
}

 Hashtable

import java.util.*;

public class HashtableTest {

	/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args)
{
// TODO: Add your code here Hashtable numbers = new Hashtable();
numbers.put(new MyKey("张三",18), new Integer(1));
numbers.put(new MyKey("李四",15), new Integer(2));
numbers.put(new MyKey("王五",20), new Integer(3)); //取得所有数据
Enumeration e = numbers.keys();
while(e.hasMoreElements())
{
MyKey key = (MyKey)e.nextElement();
System.out.print(key+"=");
System.out.println(numbers.get(key));
} //如果没有覆盖hashcode()方法跟equal方法的话,那么这个第三取出来将为空值
System.out.println(numbers.get(new MyKey("张三",18)));
}
} public class MyKey
{ private String name = null; private int age = 0; public MyKey(String name, int age)
{
this.name = name;
this.age = age;
} public boolean equals(Object obj)
{
if(obj instanceof MyKey)
{
MyKey objTemp = (MyKey)obj;
if(name.equals(objTemp.name) && age==objTemp.age)
{
return true;
}else{
return false;
}
}else{
return false;
}
} public int hashCode()
{
//StrinbBuffer类不能用做关键字类
return name.hashCode() + age;
} public String toString()
{
return "name:"+this.name+", age:"+this.age;
//return name+", "+age;
}
}

  Properties

import java.util.*;
import java.io.*; public class PropertiesFile { /**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args)
{
// TODO: Add your code here long startTime = System.currentTimeMillis(); Properties settings = new Properties();
try{
settings.load(new FileInputStream("count.txt"));
}catch(Exception e){
//e.printStackTrace();
settings.setProperty("count",String.valueOf(0));
}
//settings.get("count");
int c = Integer.parseInt(settings.getProperty("count")) +1;
System.out.println("这是第:"+c+"次运行"); //settings.put("count",new Integer(c).toString());
settings.setProperty("count",new Integer(c).toString());
try{
settings.store(new FileOutputStream("count.txt"),"Program is used:");
}catch(Exception e){
e.printStackTrace();
} long endTime = System.currentTimeMillis();
System.out.print("动行了:"+(endTime - startTime)+"秒"); }
}

  Calendar

import java.util.*;
import java.text.SimpleDateFormat; public class TestCalendar { /**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args)
{
// TODO: Add your code here
Calendar c1 = Calendar.getInstance();
System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(Calendar.MONTH)+"月"+c1.get(c1.DAY_OF_MONTH)+"日 "+c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+c1.get(c1.SATURDAY)); c1.add(c1.DAY_OF_YEAR,315);
System.out.println(c1.get(Calendar.YEAR)+"年"+c1.get(Calendar.MONTH)+"月"+c1.get(c1.DAY_OF_MONTH)+"日 "+c1.get(c1.HOUR)+":"+c1.get(c1.MINUTE)+":"+c1.get(c1.SATURDAY)); SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy年MM月dd"); try{
Date d = sdf1.parse("2003-03-15");
System.out.println(sdf2.format(d));
}catch(Exception e){
e.printStackTrace();
}
//System.out.println(d.toString()); Timer tm =new Timer();
tm.schedule(new MyTimerTask(tm),3000); //new Timer(true).schedule(
//},
//3000); }
} class MyTimerTask extends TimerTask
{
private Timer tm = null; public MyTimerTask(Timer tm)
{
this.tm = tm;
}
public void run()
{
try{
Runtime.getRuntime().exec("calc.exe");
}catch(Exception e){
e.printStackTrace();
}
//加载结束任务线程
//System.exit();
this.tm.cancel();
//TimerTask.cancel();
}
}

  Integer

public class TestInteger {

	/**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args)
{
// TODO: Add your code here
int w = new Integer(args[0]).intValue();
int h = Integer.parseInt(args[1]);
//int h = Integer.valueOf(args[1]).intValue();
//将字符串转换为整数的三种方法 for(int i=0; i<h; i++)
{
StringBuffer sb = new StringBuffer();
for(int j=0; j<w; j++){
sb.append('*');
}
System.out.println(sb.toString());
}
}
}

  Vector /ArrayList

//import java.util.Vector;
//import java.util.Enumeration;
import java.util.*; public class TestCollection { /**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
ArrayList v = new ArrayList();
System.out.println("请输入一串数值:");
while(true)
{
int b =0;
try{
b = System.in.read();
}catch(Exception e){
e.printStackTrace();
}
//其实这里的int b是对应的字母的ASSIC码的值,所以不能直接将它保存到Vector中去
if(b=='\n' || b=='\r')
{
break;
}else{
int number = b-'0';
v.add(new Integer(number));
}
} int sum = 0;
//Enumeration e = v.elements();
//(Integer)e.nextElement(); 不是返回下一个对象,而是返回指标器正指向的对象
//e.hasMoreElements();如果没有对象将返回false,如果还有对象将返回true
Iterator e = v.iterator();
//while(e.hasMoreElements())
while(e.hasNext())
{
//Integer intObj = (Integer)e.nextElement();
Integer intObj = (Integer)e.next();
sum += intObj.intValue();
}
System.out.println("相加总和为:"+sum);
}
} import java.util.*; public class TestSort { /**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here ArrayList al = new ArrayList();
al.add(new Integer(1));
al.add(new Integer(5));
al.add(new Integer(4));
al.add(new Integer(3));
al.add(new Integer(2));
al.add(new Integer(9));
System.out.println("排序前:");
System.out.println(al.toString()); Collections.sort(al);
System.out.println("排序后:");
System.out.println(al.toString());
//Collections主要操作集合类对象,一般的方法的是静态类 }
} import java.util.Vector;
import java.util.Enumeration; public class TestVector { /**
* Method main
*
*
* @param args
*
*/
public static void main(String[] args) {
// TODO: Add your code here
Vector v = new Vector();
System.out.println("请输入一串数值:");
while(true)
{
int b =0;
try{
b = System.in.read();
}catch(Exception e){
e.printStackTrace();
}
//其实这里的int b是对应的字母的ASSIC码的值,所以不能直接将它保存到Vector中去
if(b=='\n' || b=='\r')
{
break;
}else{
int number = b-'0';
v.addElement(new Integer(number));
}
} int sum = 0;
Enumeration e = v.elements();
//(Integer)e.nextElement(); 不是返回下一个对象,而是返回指标器正指向的对象
//e.hasMoreElements();如果没有对象将返回false,如果还有对象将返回true
while(e.hasMoreElements())
{
Integer intObj = (Integer)e.nextElement();
sum += intObj.intValue();
}
System.out.println("相加总和为:"+sum);
}
}

  

java第六节 字符串/集合的更多相关文章

  1. 零基础学Java第四节(字符串相关类)

    本篇文章是<零基础学Java>专栏的第四篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! String 本文章首发于公众号[编程攻略] 在Java中,我们经 ...

  2. 零基础学Java第六节(面向对象二)

    本篇文章是<零基础学Java>专栏的第六篇文章,文章采用通俗易懂的文字.图示及代码实战,从零基础开始带大家走上高薪之路! 本文章首发于公众号[编程攻略] 继承 创建一个Person类 我们 ...

  3. Java第六节课总结

    动手动脑: 多层的异常捕获-1:ArrayIndexOutOfBoundsException/内层try-catch发生ArithmeticException多层的异常捕获-2:ArrayIndexO ...

  4. Java基础知识强化之集合框架笔记27:ArrayList集合练习之去除ArrayList集合中的重复字符串元素

    1. 去除ArrayList集合中的重复字符串元素(字符串内容相同) 分析: (1)创建集合对象 (2)添加多个字符串元素(包含重复的) (3)创建新的集合 (4)遍历旧集合,获取得到每一个元素 (5 ...

  5. java字符串集合

    一,java的接口跟C语言所能做到的相比确实是让人眼前一亮的东西.利用接口可以将多种东西放到一起,在编程过程中就能省略掉相同类的很多重复代码,将代码进行分类别的,统一的处理. 二,java中的字符串处 ...

  6. JAVA知识点总结(六)(集合)

    第十九章 集合 一.数组弊端: 数组长度是固定的,无法继续添加元素. 二.什么是集合: Java提供一个集合类,它的长度是可以改变的,能储存任意的对象,长度随着元素的增加而增加. 三.集合和数组的区别 ...

  7. ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借

    ASP.NET MVC深入浅出系列(持续更新)   一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...

  8. 第一百二十六节,JavaScript,XPath操作xml节点

    第一百二十六节,JavaScript,XPath操作xml节点 学习要点: 1.IE中的XPath 2.W3C中的XPath 3.XPath跨浏览器兼容 XPath是一种节点查找手段,对比之前使用标准 ...

  9. Java入门——(6)集合

       关键词:Collection接口.Map接口.Iterator接口.泛型.Collections工具类.Arrays工具类   一.集合概述      当数据多了需要存储,需要容器,而数据的个数 ...

随机推荐

  1. [转]小心PHP的类定义顺序与继承的问题

    FROM : http://www.pakey.net/blog/php-class-shunxu.html 以下代码的运行环境均为PHP5.3.11先来看一段代码 <?php class A  ...

  2. AndroidManifest.xml文件解析(转帖)

    原帖地址:http://www.cnblogs.com/pilang/archive/2011/04/20/2022932.html 一.关于AndroidManifest.xml       And ...

  3. tmux 终端分屏利器使用

    介绍 Tmux 是一个工具,用于在一个终端窗口中运行多个终端会话. 不仅如此,你还可以通过 Tmux 使终端会话运行于后台或是按需接入.断开会话,这个功能非常实用. 很好的工具,记录一下,以后要常用. ...

  4. C/C++ signal 信号处理函数

    软中断信号(signal,又简称为信号)用来通知进程发生了异步事件.进程之间可以互相通过系统调用kill发送软中断信号. 内核也可以因为内部事件而给进程发送信号,通知进程发生了某个事件. 注意,信号只 ...

  5. java判断一个字符串是否包含某个字符

    一.contains方法 1:描述 java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列 2:声明 public boolean cont ...

  6. 对Attention is all you need 的理解

    https://blog.csdn.net/mijiaoxiaosan/article/details/73251443 本文参考的原始论文地址:https://arxiv.org/abs/1706. ...

  7. Java-JUC(十一):线程8锁

    题目: 判断以下8种情况,输出的内容 题目一:一个Number实例对象number,两个非静态同步方法getOne,getTwo,两个线程打印输出(一个线程调用number.getOne,另外一个线程 ...

  8. 模拟日历计算 poj1008

    Maya Calendar Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 69932   Accepted: 21524 D ...

  9. Python输出信息

    Python很多情况下,都是通过Console输出信息,大量翻屏滚动的信息,太乱.而pip安装的效果就很好,只是在一行输出信息,不断变化.网上找资料,不难. 用print的话,跟一个“,”就表示不换行 ...

  10. Javascript常用语法 (一)

    判断成员是否是一个函数: if (typeof options.sourceMapName === 'function') { mapNameGenerator = options.sourceMap ...