CoreJava学习笔记
来源:互联网 发布:淘宝店怎么看营业额 编辑:程序博客网 时间:2024/04/29 03:25
=====================day03==========================
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
回顾:
1)多态:父类的引用接收子类对象。
2)equals():内容相等,前提重写。(Object中的equals是==)
3)String
4)正则表达式
1.基本类型不能参与面向对象的开发。因为他们不是以对象的形式存在,也没有继承关系。 为此,java提供了8个基本对象的包装类,包装类的主要作用就是用每一个实例来封装一个基本类型数据,
使基本类型数据以对象的形式存在,从而可以参与面向对象的开发。
基本类型 包装类
int java.lang.Integer
char Character
byte Byte
short Short
long Long
float Float
double Double
boolean Boolean
1)java从1.5之后推出了一个新特性:自动拆装箱
A.自动拆箱:可以自动将包装类转换为基本类型
B.自动装箱:可以自动将基本类型转换为包装箱
int a = new Integer(1);//int a = new Integer.intvalue();
Integer aa = 1;//Integer aa = Integer.valueOf(1);
test(a);//test(Integer.valueOf(a));
2)通过包装类我们可以获取,某种基本类型的取值范围
A.包装类支持两个常量:
MAX_VALUE:该基本类型所允许的最大值
MIN_VALUE:最小值
B.包装类还可以将字符串转换成其表示的基本类型数据:
Integer.parseInt(String str)
3)和数字相关的其他类:
BigDecimal:大浮点数
支持四个运算的方法:
BigDecimal add(BigDecimal d)
BigDecimal subtract(BigDecimal d)
BigDecimal multiply(BigDecimal d)
BigDecimal divide(BigDecimal d)
BigInteger:用于描述长整数
2.集合框架:
Collection:所有集合的父接口。
相同的判断:equals
java提供了另一种解决方案,集合框架
Collection:所有集合的父接口
Collection派生了两个子接口:
List:可重复集--相同的对象可以重复添加
Set:不可重复集--相同的对象不可重复添加
相同的判断是依靠元素的equals比较的。
Collection定义的方法:
int size():获取集合的元素个数
boolean add(E e):向集合中添加元素
boolean remove(Object o):删除给定的元素
booleanisEmpty():判断集合是否不含有元素
void clear():清除集合中所有元素
boolean contains(Object o):集合中是否含有给定元素
booleanaddAll(Collection c):将给定的集合中的所有元素添加到当前集合中
booleanremoveAll(Collection c)删除当前集合中与给定集合相同的元素(删除交集)
2.时间间的转换:
public static void main(String[] args) throws ParseException {
//显示当前时间
Date date = new Date();
System.out.println(date);//Thu Mar 20 10:42:47 CST 2014
/**
* SimpleDateFormat
* 用于在字符串与日期间相互转换
* Date==>SimpleDateFormat==>String
* String==>SimpleDateFormat==>Date
* 两者之间转化的桥梁是日期格式字符串
* E:星期
* HH:24小时制
* hh:12小时制
*/
SimpleDateFormatfmt = new SimpleDateFormat("yyyy-MM-ddHH:mm:ss E"); System.out.println(fmt.format(date));//输出字符串2014-03-20 10:56:48 星期四
/** * String==>SimpleDateFormat==>Date * parse():将字符串转成Date型的 */ String dateStr = "11-25-2012"; SimpleDateFormat fmt2 = new SimpleDateFormat("MM-dd-yyyy"); Date date2 = fmt2.parse(dateStr); System.out.println(date2);//Sun Nov 25 00:00:00 CST 2012 /** * Calendar * 操作时间:加减年月等 * 加8区 * set(),get(),setTime(),getTime(),add() * Date==>Calendar用Calendar.setTime() * Calendar==>Date用Calendar.getTime() * DAY_OF_YEAR * DAY_OF_MONTH * DAY_OF_WEEK * DATE==DAY_OF_MONTH */ Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.DATE, 32);//自动跳到下个月 System.out.println(calendar.getTime());//Tue Apr 01 11:10:20 CST 2014 calendar.set(Calendar.MONTH, 8); int month = calendar.get(Calendar.MONTH); System.out.println("现在是"+(month+1)+"月"); //计算天,是年中的天 calendar.add(Calendar.DAY_OF_YEAR, 1);
System.out.println(calendar.getTime());//获取的是Date型的时间
}
3.正则表达式:
1)正则表达式在验证字符串时只关注格式是否正确,不关心内容是否有效
* 测试正则表达式的相关功能
* @author tarena
* javadoc:解释器
* 在类、常量、方法中加文档注释
2)public static void main(String[] args) {
/**
* [123]:一个
* fancq@tarean.com.cn
* \w+@\w+(\.com|\.cn|\.com\.cn)
} * \w:在字符串中Java编译器认为w不需要转义,写成\\w */ String regex = "\\w+@\\w+(\\.com|\\.cn|\\.com\\.cn)"; String mail = "fancq@tarena.com.cn"; System.out.println("是否是有邮箱:"+mail.matches(regex)); /** * 拆分字符串 * String[] split(String regex) * . :点在正则表达式中有特殊含义 */ String imgName = "123.jpg"; String[] names = imgName.split("\\."); long d = System.currentTimeMillis(); String newName = d+"."+names[1]; System.out.println(newName); /** * parseInt()方法用于将数字字符串转成int型 */ String s = "66"; int a = Integer.parseInt(s); System.out.println("a="+a);//a=66 /** * 替换 * replaceAll(String Regex,String "") * 在客户端 */ regex = "SB|2B|MB|NND"; String info = "你个SB,怎么能这么2B,NND"; info = info.replaceAll(regex, "***"); System.out.println(info);
=====================day04==========================
包装类:让基本类型参与面向对象开发
Integer一个字节内缓存
valueOf:基本类型-->包装类
parseInt/parseDouble:String-->基本类型(String必须是要转的类型数据)
BigDecimal/BigInteger:add()/subtract()/multiply()/divide(除数,小数位,舍入方式)
集合:
Collection接口:
List:可重复集子接口,允许通过下标操作集合元素。
Set:不可重复集
List有两个常用的实现类:
ArrayList: 底层是依靠对象数组实现的
LinkedList: 底层是靠链表实现的
1.List接口
2个实现类:
1)ArrayList:底层是依靠对象数组实现的;查询效率高,增删效率低
2)LinkedList:底层是靠链表实现的;增删效率高,查询效率低
list提供的一些“独有”方法:add和remove方法
E get(int index):获取当前集合中给定下标所对应位置上的元素。相当于调用数组的:array[1] E set(intindex,E e):将给定的元素存入集合中给定下标位置。。。。返回被替换的
E remove(int index):删除指定位置的元素
void add(intindex,E e):向集合指定位置插入元素
2.ArrayList类
3.泛型
java1.5之后出现的一个新特性。
可以在使用某个类的某个实例时,动态指定其属性,方法的参数,返回值的类型。
一般使用一个大写字母,必须是引用类型。有多个:用,隔开
集合也支持泛型,泛型在集合中的作用是约束集合元素类型。
4.
1.5之后推出了新循环,也叫增强for循环。
新循环只用来遍历集合或数组。
foreach()
语法:
for(element_type e : array|Collection){
//循环体
}
次数由数组长度或集合size决定的。所以新循环不适用传统循环的需求。
新循环不关心循环次数。
Java的新循环是用"迭代器"实现的。
5.数据结构中的队列和栈
1)队列:用于保存一组数据。但是对存取元素有严格要求,要求元素存取遵循先进先出原则。(FIFO)
Queue接口:队列的接口。
存取频繁
LinkedList:可以保存一组数据,又具有增删效率高的特点,所以其作为队列实现是一种很好的解决方案。
Java免费学习资料直播公开课群:175161984
- CoreJava学习笔记
- corejava学习笔记(一)
- CoreJAVA笔记
- [转]CoreJava学习笔记_Java语法基础
- 大数据——corejava学习笔记
- CoreJava学习笔记-Java核心编程-学习笔记
- CoreJava学习笔记深入浅出个人心得———Day1
- CoreJava day2 笔记
- CoreJava day12笔记
- corejava笔记1 多线程
- coreJava 学习日记
- CoreJava学习-练习大全
- corejava
- corejava笔记 Swing编程未完
- Java学习大全 之-- CoreJava
- 进制数的计算方法图例(来源:传智播客马士兵 coreJava 学习视频)
- CoreJava day1
- CoreJava day2
- 共用体
- centos7安装jdk1.8
- kaldi001 -- 树的内部结构
- CRC循环冗余校验学习及总结
- 贪吃蛇游戏
- CoreJava学习笔记
- Spring MVC接收前台form表单提交数据的乱码问题
- vector的简单实现
- DEBUG SYMBOLS ON MACOSX
- 剑指offer:第20题顺时针打印矩阵;
- url中包含#字符等特殊字符导致请求报错的解决方案
- javaWeb中BaseServlet的实现
- FZU 2234 牧场物语【Dp】好题!好题!
- jqueryMobile select表单