- 浏览: 20848 次
- 性别:
- 来自: 北京
最新评论
收藏列表
标题 | 标签 | 来源 | |
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("============================"); } } |