- 浏览: 1592228 次
- 来自: 上海
文章分类
- 全部博客 (374)
- Java (101)
- Struts (54)
- Oracle (30)
- JavaScript (16)
- Spring (27)
- Hibernate (16)
- MyEclipse (3)
- JSF (1)
- FreeMarker (2)
- SiteMesh (2)
- JfreeChart (2)
- Ibatis (2)
- JSP (12)
- MyBatis (4)
- SWFupload (1)
- EJB (4)
- Jboss (4)
- WebService (2)
- Linux (16)
- Android (2)
- XML (6)
- Java 网络编程 (13)
- AXIS2 (1)
- FTP (1)
- Jswing (1)
- Socket (3)
- 杂文选集 (6)
- solr (2)
- PS (1)
- Tomcat (7)
- JDBC (9)
- Highcharts (1)
- maven (1)
- Nodejs (0)
- navicat (2)
- Exception (5)
- eclipse (3)
- jQuery (1)
- springMVC (4)
- MySQL (11)
- SVN (1)
- Sql Server (1)
- zookeeper (1)
- JVM (1)
- Groovy (2)
- Git (1)
- Nginx (1)
- DynamicReport (1)
- IDEA (2)
- JasperReports (1)
- Postgresql (2)
- Mac (1)
- gradle (1)
- 数据结构算法 (1)
最新评论
-
hpu145:
引用引用
java 千分位的添加和去除 -
被遗忘的下路:
少了个junit-4.8.2的包
SSH2整合完整案例(四十三) -
白天看黑夜:
java过滤emoji字符处理,希望能帮到你http://ww ...
emoji 表情图片解决方法 -
caipeiming:
这个挺好JavaScript实现input输入框控件只允许输入 ...
js 控制文本框只能输入中文、英文、数字等 -
双子树:
东西太好啦受教啊
Struts2 JSP中将list,set ,Map传递到Action然后<s:iterator>遍历(三十五)
JDK1.5 泛型
泛型 应用
泛型在自定义的程序中使用
/** * JDK1.5 泛型 * 泛型格式:通过<> 来定义操作的 "引用数据类型" * * 在使用java提供的对象时,什么时候使用泛型呢? * * 通过在集合框架中很常见 * 只要见到 <>就要定义泛型 * * 其实<> 就是用来接受类型的 * 当使用集合时,将集合中要存储的数据类型作为参数传递到<>中时候 */ public class GenericDemo { public static void main(String[] args) { method_1(); System.out.println("======================="); method_2(); } /** * JDK 1.5出现了泛型 出现的新特新,用于解决安全问题,是一个安全机制. * 好处: * 1)将运行时期的问题 java.lang.ClassCastException: 转移到了编译时期. * 方便程序员解决问题,让运行时期问题减少. * 2)避免了强制 类型转换的麻烦 */ public static void method_2(){ ArrayList<String> al=new ArrayList<String>(); al.add("abc01"); al.add("abc01"); al.add("abc01"); //al.add(4); 编译失败 //Iterator it=al.iterator(); //JDK1.5以前 只能凭程序员主动 判断元素类型. Iterator<String> it=al.iterator(); while(it.hasNext()){ String s=it.next(); //没有进行强制转换 System.out.println(s+":"+s.length()); } } /** * JDK升级: 高效 安全 简化书写 * 下面 程序编译 通过,但是运行有问题 * java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String * 分析原因就是 因为 集合中保存的值出现了 4 不是字符串类型 .所以 JDK 1.5 后就出现了泛型 */ public static void method_1(){ ArrayList al=new ArrayList(); al.add("abc01"); al.add("abc01"); al.add("abc01"); al.add("abc01"); //al.add(new Integer(4)); al.add(4); //JDK1.5以前是不可以这样做到 只能用上面的那句话. Iterator it=al.iterator(); while(it.hasNext()){ String s=(String)it.next(); System.out.println(s+":"+s.length()); } } }
泛型 应用
/** * 泛型 应用 * 1.修改练习 中使用个TreeSet中 字符串长度排序 * 2.在比较器中使用泛型 */ public class GenericDemo2 { public static void main(String[] args) { TreeSet<String> ts=new TreeSet<String>(new StrLenComparator()); ts.add("abcde"); ts.add("cc"); ts.add("bad"); //长度都相同 内容不同 ts.add("gdg"); //长度都相同 内容不同 ts.add("hahaha"); Iterator<String> it=ts.iterator(); while(it.hasNext()){ String s=it.next(); System.out.println(s+":"+s.length()); } } } class StrLenComparator implements Comparator<String>{ @Override public int compare(String o1, String o2) { //倒序 将两个对象换个位置就可以了 // int num=new Integer(o1.length()).compareTo(new Integer(o2.length())); int num=new Integer(o2.length()).compareTo(new Integer(o1.length())); //主要条件判断完了 判断次要条件 if(num==0) return o2.compareTo(o1); return num; } }
泛型在自定义的程序中使用
/** * 泛型在自定义的程序中使用 * */ class Worker{ } //后来多了 Student class Student{ } class Tool{ private Worker w; public void setWorker(Worker w){ this.w=w; } public Worker getWorker(){ return w; } } //变形1 1.5以前 就这样干 扩张程序 class Tool1{ //这样为了兼容 Worker 和 Student 于是采用了 Object private Object obj; public void setObject(Object obj){ this.obj=obj; } public Object getObject(){ return obj; } } //变形3 1.5以后 泛型 做法 由调用者来确定调用的类型 class Utils<QQ>{ private QQ q; public void setObject(QQ q){ this.q=q; } public QQ getObject(){ return q; } } public class GenericDemo3 { public static void main(String[] args) { Tool t=new Tool(); t.setWorker(new Worker()); t.getWorker(); //正常 Tool1 t1=new Tool1(); t1.setObject(new Worker()); Worker w1=(Worker)t1.getObject(); //下面编译通过 运行失败 .类型转换异常 Tool1 t2=new Tool1(); t1.setObject(new Student()); Worker w2=(Worker)t1.getObject(); //泛型来做 Utils<Worker> u=new Utils<Worker>(); u.setObject(new Worker()); //u.setObject(new Student()); 编译就报错了 这样提高程序的安全性 Worker w3=u.getObject(); //看看 不用强转了吧 } }
发表评论
-
检测一个字符串是否在jvm的常量池中
2018-12-18 17:34 1007public static boolean inPool( ... -
UTC时间, GMT时间 ,夏令时
2017-08-18 15:12 2285经常混淆于此,特地研究了一下,记录在此以备忘。 整个地 ... -
java 反射List
2017-02-18 01:58 5662package com.enhance.reflect; ... -
JDK1.5 Exchange 两个线程互换数据
2016-08-04 18:00 1006import java.util.concurrent ... -
JDK1.5 CountDownLatch
2016-08-04 16:25 1057/* * 还有一个利用场景: ... -
java CyclicBarrier 循环障碍阻塞
2016-08-03 23:54 1014//一个同步辅助类,它允许一组线程互相等待,直到到达某个公 ... -
java 信号灯 Semaphore
2016-08-03 23:53 1828更多介绍http://blog.csdn.net/java20 ... -
java 使用读写锁设计一个缓存模型
2016-08-03 23:49 1420import java.util.HashMap; ... -
java 读写锁
2016-08-03 23:46 820import java.util.Random; i ... -
java 多个线程之间同步通信
2016-08-02 17:16 2401import java.util.concurrent ... -
jdk1.5 锁 Lock 和 Condition
2016-08-02 17:03 927// lock 练习 public class Lock ... -
JDK1.5 获取线程执行结果 Callable Future
2016-08-02 15:08 1176import java.util.Random; i ... -
JDK1.5 线程池
2016-08-02 14:48 806import java.util.concurrent ... -
java 多线程ThreadLocal
2016-08-02 00:13 1149import java.util.Random; ... -
java 定时器 Timer
2016-08-01 16:53 3897import java.util.Calendar; ... -
java 多线程同步+通信
2016-08-01 16:48 970/** *父子线程 交替打印10 次, 100次 ... -
java 线程同步
2016-08-01 16:43 1027import java.util.concurrent.l ... -
java多线程练习
2016-08-01 16:35 1843Java 传统多线程 Java 多线程同步 Java 多线 ... -
java 传统多线程
2016-08-01 16:34 1011/** * 传统多线程 */ public ... -
java 图片,剪切,缩放
2016-01-06 10:21 2234package out; import ja ...
相关推荐
【描述】提到的"共25天"暗示了这是一个完整的教学计划,不仅限于15天的基础源代码,可能还包括了后10天的进阶内容,如面向对象编程的深入理解、异常处理、集合框架、多线程、I/O流、网络编程等Java核心特性。...
《韩顺平30天学Java》是一门针对初学者设计的Java编程课程,旨在帮助学员在短短一个月的时间内掌握Java编程基础。该课程由知名IT教育专家韩顺平教授,以其独特的教学风格和深入浅出的讲解方式,使得复杂的编程概念变...
【Java视频教程_黑马Java零基础辅导班[第二期]15天课件源码】是一套专为初学者设计的全面Java学习资源。这个教程旨在帮助那些对编程没有基础或者对Java语言不熟悉的学员,通过15天的密集学习,掌握Java编程的基本...
这是一份专为Java初学者准备的学习资源,由魔乐科技提供,旨在帮助用户在18天内建立起坚实的Java编程基础。Typora是一款简洁而高效的Markdown编辑器,使得笔记整理和阅读更加便捷。通过这份笔记,学习者将逐步了解并...
Java类集框架是Java编程语言中的核心组成部分,它为开发者提供了高效、灵活的数据存储和...通过"跟我学java26日通 第15天 Java类集框架"的教程,你可以逐步掌握这些关键技能,为成为一名熟练的Java开发者打下坚实基础。
Java语言是一种广泛应用于互联网开发、企业级应用、大数据处理、移动开发等多个领域的高级编程语言。它的设计理念是“一次编写,到处运行”,这得益于其跨平台的特性,由Sun Microsystems(后被甲骨文公司收购)在...
本教程“21天学会Java”旨在为新手提供一个系统、全面的学习路径,帮助他们在短时间内掌握Java编程基础。 在21天的学习计划中,通常会按照以下阶段进行: 第1-3天:Java基础知识 这个阶段会介绍Java的历史、发展和...
Java35天详细讲义是一份全面覆盖Java编程基础知识到实际项目应用的教程,旨在为初学者提供系统化的学习路径。这份讲义深入浅出地介绍了Java语言的核心概念和技术,帮助学习者逐步掌握这一强大且广泛应用的编程语言。...
《20天Java核心技术教程》是一份全面且深入的学习资源,专为想要快速掌握Java编程基础和核心概念的初学者设计。20天的时间框架旨在提供一个高效的学习计划,帮助学习者在短时间内建立起坚实的技术基础。 Java是一种...
在“21天学会JAVA编程”这本教材中,你将踏上一段精彩的旅程,系统学习Java编程语言,从零基础到初级程序员的蜕变只需短短三周。Java是一种广泛应用的、面向对象的编程语言,以其跨平台特性、稳定性和高效性闻名于世...
Java编程语言是世界上最流行的编程语言之一,尤其在企业级应用开发中占据主导地位。这份"18天Java笔记"提供了一个快速学习Java的核心内容精华,适合初学者和有一定经验的开发者进行回顾和巩固。txt版的格式使得笔记...
在Java编程领域,"尚硅谷_宋红康_20天Java核心_资料工具" 提供的是一套全面且实用的学习资源,旨在帮助开发者深入理解Java的核心概念和技术。Java是一种广泛应用于互联网开发、企业级应用、大数据处理等领域的面向...
这个名为"java练习27天.rar"的压缩包文件似乎提供了一个精心设计的学习路径,帮助用户在27天内快速提升Java编程技能。"Java-master"这个子文件名暗示了它可能包含一个完整的Java学习项目或者代码库,以大师级的标准...
10. **泛型**:泛型是Java SE 5.0引入的新特性,它允许在定义类、接口和方法时指定类型参数,以实现类型安全和代码重用。 11. **Java Swing和JavaFX**:对于GUI编程,学习如何使用Swing库创建桌面应用程序,或者...
《21天学通Java》是为初学者设计的一本教程,旨在帮助读者在短时间内掌握Java编程基础。这本书的第7版更新了最新的Java技术,包括Java 8及更高版本的关键特性,使得学习内容与时俱进,更适合当前的开发环境。通过21...
"21天学Java"可能是一本旨在帮助初学者在短时间内掌握Java编程基础的教程书籍。通过提供源代码,这本书可能深入解释了Java语言的关键概念和实践应用。 在21天的学习过程中,读者通常会接触到以下几个核心知识点: ...
《21天学通JAVA(高清版)》是一本针对初学者和有一定基础的程序员设计的Java编程教程。这本书以21天的学习计划为线索,系统地介绍了Java语言的核心概念和技术,旨在帮助读者在短时间内掌握Java编程的基础知识,并建立...
《21天学通Java(中英文打包)》是一份专为Java初学者设计的教程资源,包含了21天的学习计划,旨在帮助学习者在短时间内掌握Java编程的基础知识。这个系列教程以实践为主导,理论与实践相结合,使得学习过程更为高效...
- **第15天:图形用户界面** 学习使用Swing或JavaFX框架开发GUI应用程序。 - **第16天:文件与流** 掌握文件输入输出操作,包括文件流、缓冲区等高级话题。 - **第17天:网络编程** 介绍网络编程的基本概念,...
《Java2 编程21天自学通》是一本针对初学者设计的Java编程教程,旨在帮助读者在21天内快速掌握Java2的核心概念和技术。这个教程可能包含多个章节,涵盖从基础语法到高级特性的全面讲解。下面将详细阐述Java2编程中的...