`
收藏列表
标题 标签 来源
java Iterator JAVA基础 之 Iterator
package com.cxy.collection;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

/**
 * @author cxy
 */
public class IteratorTest
{
	/**
	 * 说明:
	 * 1.Iterator是一个迭代器
	 * 2.Iterator删除问题(工作中遇到的问题)
	 */
	public static void main(String[] args)
	{
		Set<String> s = new HashSet<String>();
		s.add("苹果");
		s.add("香蕉");
		s.add("橘子");
		
		//正常使用,带泛型的迭代器
		Iterator<String> it = s.iterator();
		while(it.hasNext())
		{
			System.out.print(it.next()+"  ");
		}
		
		while(it.hasNext())
		{
			System.out.print(it.next()+"  ");
		}
		//发现第二次访问没有打印任何东西,因为it已经迭代到最后 it.hasNext() 是false
		System.out.println("");
		System.out.println("===================");
		
		//删除问题:工作中经常想用java去处理数据集合,例如:去掉某些不合要求的数据
		it = s.iterator();
		while(it.hasNext())
		{
			String one = it.next(); //传值非传引用
			if("橘子".equals(one))
			{
				it.remove(); //这个删除 是从集合中删除上一次next方法返回的元素
			}
			System.out.print(one+"  ");
		}
		System.out.println(s);
		
		//上面是正规安全的删除,但是很多朋友会很自然的这样去写
		it = s.iterator();
		s.add("橘子");  //将删除的橘子加回来
		while(it.hasNext())
		{
			String one = it.next();
			if("橘子".equals(one))
			{
				//这个数据我不要了,我从集合中将其删除 OK 如果你这么做了 你会看到一个ConcurrentModificationException 异常
				 s.remove(one); 
			}
			System.out.print(one+"  ");
		}
		
	}

}
java Collection JAVA基础 之 Collection
package com.cxy.collection;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.Iterator;

/**
 * @author chenxiaoyang
 */
public class CollectionTest
{
	/**
	 * 说明:
	 * 1.Collection java集合框架的根级接口(root interface)
	 * 2.常用子接口:List、Set、Queue,注意map是自成体系的
	 * 3.方法:新增、包含、遍历、交集、判空、大小、清空等
	 */
	public static void main(String[] args)
	{
		Collection children=new ArrayList(); //注意由于这里没有加泛型,所以很多黄线警告
		//新增
		children.add("小明");
		children.add("小红");
		children.add("小白");
		System.out.println("======================");
		
		//是否包含
		System.out.println("幼儿园一班是否有叫小明的小朋友? 答:"+children.contains("小明"));
		System.out.println("幼儿园一班是否有叫小黑的小朋友? 答:"+children.contains("小黑"));
		System.out.println("======================");
		
		
		//遍历(2种方式)
		System.out.print("Iterator法遍历:");
		Iterator it = children.iterator(); //Iterator(迭代器) 请参看博客中有关Iterator专门的文章
		while (it.hasNext())
		{
			System.out.print((String)it.next()+"  ");//由于没有使用泛型,所以这里需要强转一下
		}
		System.out.println("");  //保持格式,无实际用处
		
		/*上面这种方式太注重遍历过程的本身,对初学者来说有些复杂,那么试试foreach吧
		 *foreach是java 5 提供的一种便捷遍历方法
		 */
		System.out.print("foreach法遍历:");
		for(Object one : children)
		{
			System.out.print((String)one+"  ");
		}
		System.out.println("");  //保持格式,无实际用处
		System.out.println("======================");
		
		
		//转换成数组
		Object[] array=children.toArray();
		System.out.println("数组大小:"+array.length);
		System.out.println("======================");
		
		//删除
		System.out.println("删除前:"+children); //这种打印方法实际用的是Collection实现类的toString方法
		children.remove("小明");
		System.out.println("删除后:"+children);
		System.out.println("======================");
		
		//交集
		Collection goodBoySet=new HashSet();  //一个set集合
		goodBoySet.add("小明");
		goodBoySet.add("小白");
		children.retainAll(goodBoySet);  //children集合中存在于goodBoySet集合的数据,简单的讲就是交集。
		System.out.println("交集结果:"+children);
		System.out.println("======================");
		
		//判空、大小、清空
		System.out.println("集合是否是空?答:"+children.isEmpty());
		System.out.println("集合大小:"+children.size());
		children.clear();
		System.out.println("清空后,集合是否是空?答:"+children.isEmpty());
		System.out.println("清空后,集合大小:"+children.size());
		System.out.println("======================");
	}
}
java Runtime JAVA基础 之 Runtime
package com.cxy.f;

import java.io.IOException;

public class RuntimeTest
{
	/**
	 * 1.java程序的运行时环境
	 * 2.通过Runtime.getRuntime() 获得当前的运行环境实例
	 * 3.程序不能创建自己的Runtime实例
	 * 4.能访问jvm相关信息,最重要的是它可以执行命令行
	 */
	public static void main(String[] args) throws IOException
	{
		//获得当前Runtime实例
		Runtime rt=Runtime.getRuntime();
		
		System.out.println("可用处理器个数:"+rt.availableProcessors());
		System.out.println("可用最大内存:"+rt.maxMemory());
		System.out.println("当前总内存:"+rt.totalMemory());
		System.out.println("空闲内存:"+rt.freeMemory());
		System.out.println("-----------------------------");
		
		//重点方法 运行命令行 (notepad.exe、calc.exe、某个可执行文件的路径)
		String command="calc.exe";  //打开计算器
		rt.exec(command);
		//打开QQ 请改成自己QQ的路径
		command="C:\\Program Files (x86)\\Tencent\\QQ\\QQProtect\\Bin\\QQProtect.exe";  
		rt.exec(command);
		command="cmd /c md d:\\cxyCommandTest";  //D盘下创建一个cxyCommandTest文件夹
		rt.exec(command);
		
		//和System类似的方法,实际上System中调用的就是Runtime对应的方法
		rt.runFinalization();  //运行finalize方法。
		rt.gc();  //运行垃圾回收器(官方解释) 实际上这种运行可能只是建议性运行
		rt.exit(0);  //参数 如果是非0代表异常终止,多放在捕获异常的catch块中
	}
}
java System JAVA基础 之 System
package com.cxy.f;

import java.util.Map;


public class SystemTest
{
	/**
	 * System类方法使用测试(java 7)
	 */
	public static void main(String[] args)
	{
		//获得系统所有环境变量,在这里我们可以找到熟悉的 JAVA_HOME
		Map<String,String> env=System.getenv();
		for(String one:env.keySet())
		{
			System.out.println(one+":"+env.get(one));
		}
		//当然我们也可以直接获取某个环境变量,只要你知道他的名字
		System.out.println(System.getenv("java_home"));
		System.out.println("-----------------------------");
		
		//获得系统属性 更多的请参见JAVA API
		System.out.println(System.getProperty("os.name"));
		System.out.println(System.getProperty("java.vm.name"));
		System.out.println(System.getProperty("java.version"));
		System.out.println(System.getProperty("user.home"));
		System.out.println(System.getProperty("user.dir"));
		System.out.println("-----------------------------");
		
		//由对象地址计算的hashCode,标识对象的唯一性(新手请绕过)
		String s1=new String("cxy");
		String s2=new String("cxy");
		System.out.println("对象s1和s2的自身的hashCode是否一样:"+(s1.hashCode()==s2.hashCode()));
		System.out.println("对象s1和s2的由地址计算的hashCode是否一样:"+(System.identityHashCode(s1)==System.identityHashCode(s2)));
		
		String s3="cxy";
		String s4="cxy";
		System.out.println("对象s3和s4的由地址计算的hashCode是否一样:"+(System.identityHashCode(s3)==System.identityHashCode(s4)));
		System.out.println("-----------------------------");
		
		//两个获取系统当前时间的方法(1970年1月1日午夜的时间差)
		System.out.println(System.currentTimeMillis());  //毫秒级
		System.out.println(System.nanoTime());  //纳米级
		System.out.println("-----------------------------");
		
		System.runFinalization();  //运行对象的finalize方法。
		System.gc();  //运行垃圾回收器(官方解释) 实际上这种运行可能只是建议性运行
		
		//终止当前运行的java虚拟机(官方文档翻译)
		//实际上调用的是Runtime.getRuntime().exit(status)
		System.exit(0);  //参数 如果是非0代表异常终止,多放在捕获异常的catch块中
	}

}
java StringBuilder JAVA基础 之 StringBuilder
package com.cxy.e;

public class StringBuilderTest
{

	/**
	 * 1.JDK1.5之后出现了StringBuilder,一个可变的字符串序列
	 * 2.他的用法基本StringBuffer相同,
	 * 3.StringBuilder和StringBuffer不同的地方在于 StringBuffer是线程安全的
	 * 4.单线程、不需要线程安全的情况下,处于性能的考虑,优先选择StringBuilder
	 * 5.更详细的API请参见 http://docs.oracle.com/javase/7/docs/api/ 搜索StringBuilder
	 */
	public static void main(String[] args)
	{
		StringBuilder s = new StringBuilder();  
		
		//追加
		s.append("cxy").append(" show");
		System.out.println(s);
		
		//插入
		s.insert(3," begin");  //从序号3后插入 begin字符串
		System.out.println(s);
		
		//删除
		s.delete(3, 3+" begin".length());  //将上面插入的 begin字符串删除
		System.out.println(s);
		
		//字符串长度和容量大小
		System.out.println("字符串长度:"+s.length());
		System.out.println("字符串容量:"+s.capacity());
		
		System.out.println("字符串中序号是1的字符是:"+s.charAt(1));
		
		s.append(" StringBuilder");
		System.out.println(s);
		System.out.println("i第一次出现的位置序号:"+s.indexOf("i"));
		System.out.println("i最后一次出现的位置序号:"+s.lastIndexOf("i"));
		
		//替换
		s.replace(4,8, "test"); //从序号4到序号8之间的内容替换为test
		System.out.println(s);
		
		System.out.println("字符串反序输出:"+s.reverse());
		s.reverse();
		
		//字符串截取
		System.out.println("截取序号4到8的内容:"+s.substring(4, 8));
		
		//转换成String
		System.out.println(s.getClass().getSimpleName());
		System.out.println(s.toString().getClass().getSimpleName());
	}

}
java String JAVA基础 之 String
package com.cxy.e;

public class StringTest
{
	/**
	 * String类
	 */
	public static void main(String[] args)
	{
		//String.valueOf 将各种类型转换成String类型
		int a=123;
		String aStr=String.valueOf(a);	
		System.out.println("================================");
		
		
		//字符串的长度
		String name="chenxiaoyang";
		System.out.println(name.length());  	
		System.out.println("================================");
		
		
		//字符串比较
		String aa=new String("cxy");
		String bb=new String("cxy");
		String cc="cxy";
		String dd="cxy";
		if(aa.equals(bb))
		{
			System.out.println("aa和bb的值相同");
		}
		if(aa==bb)
		{
			System.out.println("aa和bb的引用相同");
		}else
		{
			System.out.println("aa和bb的引用不相同");
		}
		System.out.println("================================");
		
		
		//字符串比较忽略大小写
		String aa1=new String("cxy");
		String bb2=new String("Cxy");
		if(aa1.equalsIgnoreCase(bb2))
		{
			System.out.println("aa和bb的值相同(忽略大小写)");
		}
		if(aa1.equals(bb2))
		{
			System.out.println("aa和bb的值相同(不忽略大小写)");
		}else
		{
			System.out.println("aa和bb的值不相同(不忽略大小写)");
		}
		System.out.println("================================");
		
		
		//比较两个字符串 比大小
		String aa2=new String("123");
		String bb3=new String("1011");
		if(aa2.compareTo(bb3)<0)
		{
			System.out.println("aa2在aa3的前面");
		}else if(aa2.compareTo(bb3)==0)
		{
			System.out.println("aa2和aa3相等");
		}else if(aa2.compareTo(bb3)>0)
		{
			System.out.println("aa2在aa3的后面");
		}
		System.out.println("================================");
		
		
		//判断开始和结束
		System.out.println("hello world".startsWith("hello"));
		System.out.println("hello world".endsWith("ld"));
		System.out.println("================================");
		
		
		//搜索字符串
		System.out.println("a,b,c,d,e,f".indexOf(","));
		System.out.println("a,b,c,d,e,f".lastIndexOf(","));
		System.out.println("a,b,c,d,e,f".lastIndexOf("@"));
		System.out.println("================================");
		
		
		//字符串截取
		System.out.println("I like java api".substring(7));
		System.out.println("I like java api".substring(7,11));
		System.out.println("================================");
		
		
		//替换
		String tempTestStr="I like java api";
		System.out.println(tempTestStr.replace("java", "c++"));
		System.out.println(tempTestStr);
		System.out.println("================================");
		
		
		//去掉前后空格
		System.out.println(" I like java api ".trim());
		System.out.println("================================");
		
		
		//改变大小写
		System.out.println("java api".toUpperCase());
		System.out.println("JAVA API".toLowerCase());
		System.out.println("================================");
		
		
		//一个非常有用的方法
		String[] strArray="a,bdfsgf,c,d,e,f".split(",");
		for(String one :strArray)
		{
			System.out.println(one);
		}
		System.out.println("================================");
	}
}
java Date JAVA基础 之 日期
package com.cxy.f;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateAndCalendarTest
{
	public static void main(String[] args)
	{
		//Date类对象表示当前日期和时间
		//划横线的为过时的方法 就是java不建议再使用的
		Date nowDate=new Date();
		
		System.out.println("当前年:"+(nowDate.getYear()+1900));
		System.out.println("当前月:"+(nowDate.getMonth()+1));
		System.out.println("当前日:"+nowDate.getDate());
		System.out.println("当前星期:"+nowDate.getDay());
		System.out.println("当前时:"+nowDate.getHours());
		System.out.println("当前分:"+nowDate.getMinutes());
		System.out.println("当前秒:"+nowDate.getSeconds());
		System.out.println("从1970年1月1日起到现在的毫秒:"+nowDate.getTime());
		System.out.println("现在的时间是:"+nowDate.toString());
		System.out.println("现在的时间是(本地格式):"+nowDate.toLocaleString());
		System.out.println("现在的时间是(格林威治时间格式):"+nowDate.toGMTString());
		
		System.out.println("================================");
		//常用的时间格式 和 对应方法
		//其中yyyy-MM-dd是你要表示的格式 
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String systemtime=sdf.format(nowDate); 
		System.out.println(systemtime);
		
		sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		systemtime=sdf.format(nowDate);
		System.out.println(systemtime);
		
		System.out.println("================================");
		//时间性能测试,测试代码运行的时间
		long startTime=new Date().getTime();
		//这里是你自己的方法
		long endTime=new Date().getTime();
		System.out.println("程序执行用时:"+(endTime-startTime)+"毫秒");
		
		System.out.println("================================");
		System.out.println("当前年:"+Calendar.getInstance().get(Calendar.YEAR));	//返回默认地区和时区的Calendar对象
		System.out.println("当前月:"+Calendar.getInstance().get(Calendar.MONTH)+1);
		System.out.println("当前日(月中的):"+Calendar.getInstance().get(Calendar.DAY_OF_MONTH));
		System.out.println("当前日(年中的):"+Calendar.getInstance().get(Calendar.DAY_OF_YEAR));
		System.out.println("当前星期:"+Calendar.getInstance().get(Calendar.DAY_OF_WEEK));	//周日是第一天	
		System.out.println("当前时:"+Calendar.getInstance().get(Calendar.HOUR_OF_DAY));
		System.out.println("当前分:"+Calendar.getInstance().get(Calendar.MINUTE));
		System.out.println("当前秒:"+Calendar.getInstance().get(Calendar.SECOND));
		
		System.out.println("================================");
		Calendar muBirthday = Calendar.getInstance();
		muBirthday.set(Calendar.YEAR, 1986);
		muBirthday.set(Calendar.MONTH, 3);
		muBirthday.set(Calendar.DAY_OF_MONTH,19);
		System.out.println("我的生日是在一年中的第:"+muBirthday.get(Calendar.DAY_OF_YEAR)+"天");
		System.out.println("我的生日是:"+(new Date(muBirthday.getTimeInMillis())).toLocaleString());
		
		System.out.println("================================");
		Calendar calObj = Calendar.getInstance();
		calObj.add(Calendar.YEAR, 1);
		System.out.println("1年后:"+calObj.getTime().toLocaleString());
	}
}
java Math JAVA基础 之 Math
package com.cxy.e;

public class MathTest
{
	/**
	 * 数学类
	 */
	public static void main(String[] args)
	{
		//返回大于或等于参数的最小整数值
		System.out.println(Math.ceil(12.1));
		System.out.println("============================");
		
		
		//返回小于或等于参数的最小整数值
		System.out.println(Math.floor(12.9));
		System.out.println("============================");
		
		//四舍五入
		System.out.println(Math.round(12.4));
		System.out.println(Math.round(12.5));
		System.out.println("============================");
		
		
		//绝对值
		System.out.println(Math.abs(-100));
		System.out.println("============================");
		
		
		//平方根
		System.out.println(Math.sqrt(9));
		System.out.println("============================");
		
		//a的b次方
		System.out.println(Math.pow(2, 3));
		System.out.println("============================");
		
		
		//取大
		System.out.println(Math.max(123.234, 123.2341));
		System.out.println("============================");
		
		//取小
		System.out.println(Math.min(123.234, 123.2341));
		System.out.println("============================");
		
		//随机数
		System.out.println(Math.random());
		System.out.println("============================");
	}
}
Global site tag (gtag.js) - Google Analytics