8种基本数据类型的8种包装类

byte Byte

short Short

int Integer

long Long

float Float

double Double

char Character

boolean Boolean

Integer a=127; Integer b=127;//虚拟机自动装箱时进行了特殊处理,-127~128以下的自动取有过的

System.out.println(a==b);结果为true

如果是Integer a=128; Integer b=128;

System.out.println(a==b);结果为false

System.out.println(a.equals(b)); 比较的都为内容,因复写过equals结果为true

日期类的练习

package com.swift.day06;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner; /*需求:
1.使用代码完成:获取系统的当前时间并输出,输出格式:2017年11月24日
2.使用代码完成:获取键盘录入的时间转换成Date对象并输出,录入格式:2017年11月24日,如格式不正确需提示日期格式异常并打印异常信息
3.使用代码完成:使用Calendar类获取系统的当前日期并输出,输出格式:2017年11月24日
4.使用代码完成:遍历数字1-10,当遍历到5时结束java程序*/ public class Demo1 { public static void main(String[] args) {
//Date类格式转换
Date date=new Date();
System.out.println(date);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy年MM月dd日");
String str=sdf.format(date);
System.out.println(str);
//键盘字符串转日期
Scanner scan=new Scanner(System.in);
System.out.println("请输入一个日期");
String time=scan.nextLine();
System.out.println(time);
try {
Date d=sdf1.parse(time);
System.out.println(d);
} catch (ParseException e) {
System.out.println("日期格式异常啦~~~~~~~");
e.printStackTrace();
}
System.out.println("==========================");
//日历类操作
Calendar c=Calendar.getInstance();
System.out.println(c);
Date d1=c.getTime();
System.out.println(sdf1.format(d1));
//遍历到5时结束java程序
for(int i=0;i<10;i++) {
if(i==5) {
System.exit(0);
}
System.out.println("i="+i); }
}
}

数学以及装箱

package com.swift.day06;

import java.util.ArrayList;

/*需求:
1.使用代码完成:使用Math类,获取2个随机数中的最大值
2.使用代码完成:使用Math类,获取2个随机数中的最小值
3.使用代码完成:使用Math类获取5个随机数的平均值,平均值四舍五入
4.写出8种基本数据类型的包装类
5.使用代码完成:将字符串"123"转换成int类型
6.使用代码完成:将Long类型的数字10转换成int类型
7.简述下什么是自动装箱拆箱
8:请阐述你对正则表达式的理解
9.使用代码完成:校验qq号码,其中QQ校验的正则表达式为:"[1-9][0-9]{4,14}" 表示第一位不为0第二位起都是数字共5到15位
10:使用代码完成:校验手机号码,其中手机号校验的正则表达式为:"1[34578][0-9]{9}"*/ public class Demo2 { public static void main(String[] args) { //Math类
System.out.println(Math.max(20, 30));
System.out.println(Math.min(20, 30));
//Math类获取5个随机数的平均值,平均值四舍五入
double sum=0.0;
for(int x=0;x<5;x++) { double ran=Math.random()*10;
System.out.println(ran);
sum=sum+ran;
}
System.out.println(Math.round(sum/5.0));
//字符串"123"转换成int类型
int a=Integer.parseInt("123");
System.out.println(a);
//将Long类型的数字10转换成int类型
Long b=new Long(10L);
System.out.println(b.intValue());
//什么是自动装箱拆箱
Integer z=5;//本来这个是不合法的,应该是Integer z=new Integer(5);-->称为自动装箱
Integer z1=new Integer(5);//这个是合法的
Integer y=z+1;//本来这个也是不合法的,这里z+1进行了拆箱操作,然后又进行了装箱操作
ArrayList<Integer> arr=new ArrayList<>();
arr.add(1);//本来这样写也是不合法的,这令经过了自动装箱操作,合法的应为arr.add(new Integer(1));
int x=arr.get(0);//本来这里也是不合法的,这里经过了自动拆箱操作,把对象new Integer(1)拆箱成了int的1
//校验手机号码
String phone="138000x23847";
boolean bool=phone.matches("1[35678]\\d{9}");
System.out.println(bool); }
}

活了多少天

package com.swift.day06;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date; /*训练考核知识点:Date类
训练描述
请使用代码实现:计算你活了多少天 操作步骤描述
在main方法中
a)把你生日的字符串,转换为日期对象
b)把日期对象转换为对应的毫秒值
c)获取当前系统的毫秒值
d)当前系统毫秒值-出生时间对于的毫秒值计算你活的毫秒值
e)把你活毫秒值转换为天
f)输出天数
g)使用try...catch处理异常*/ public class Huojiu { public static void main(String[] args) {
//把你生日的字符串,转换为日期对象
String birthday="2017年7月7日";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
try {
Date date=sdf.parse(birthday);
System.out.println(date);
long millis=date.getTime();
System.out.println(millis);
//获取当前系统的毫秒值
long now=System.currentTimeMillis();
long now1=new Date().getTime();
System.out.println(now+"~~"+now1);
//活得毫秒数
long huo=now-millis;
System.out.println(huo);
//活的天数
System.out.println(huo/1000/60/60/24+"天"); } catch (ParseException e) {
e.printStackTrace();
} }
}

正则判断用户名

package com.swift.day06;

import java.util.Scanner;

/*正则表达式

需求:
编写一个校验用户名的程序,检测键盘录入的用户名是否合法
要求:必须以英文开头,只能包含英文,数字和`_`;最少6位,做多12位,对应的正则表达式:[a-zA-Z]\\w{5,11}*/ public class RegexDemo { public static void main(String[] args) { Scanner scan=new Scanner(System.in);
System.out.println("请输入一个用户名");
String name=scan.nextLine();
System.out.println(name);
boolean b=name.matches("[a-zA-Z][a-zA-Z0-9_]{5,11}");
System.out.println(b);
} }

500天后是什么日期

package com.swift.day06;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date; //500天后是什么日期
public class DayAfter500 { public static void main(String[] args) { Calendar c=Calendar.getInstance();
Date date=c.getTime();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
String day=sdf.format(date);
System.out.println(day);
c.add(Calendar.DAY_OF_MONTH, 500);
Date date1=c.getTime();
String day1=sdf.format(date1);
System.out.println(day1); }
}

以上知识点综合,把复杂字符串匹配成对象,并进行正则判断

package com.swift.day06;

/*请使用代码描述
*
有一段文本 " anglebaby 女 18 515151511 "
分别描述一个人的姓名 性别 年龄(int) 和QQ号码信息,完成如下需求:
1. 创建一个Person类,包含性别,性别,年龄和QQ号码属性,使用解析出来信息创建一个Person对象,并打印这个人信息
2. 并判断QQ号是否合法,匹配规则,全部都是数字,第一位非0,长度为5到12位. */ public class Zifuchuan_Parse { public static void main(String[] args) { String info=" anglebaby 女 18 515151511 ";
info=info.trim();
String[] arr=info.split("\\s+");
for(String str:arr) {
System.out.println(str);
}
String name=arr[0];
String sex=arr[1];
int age=Integer.parseInt(arr[2]);
String qq=arr[3];
Person p=new Person(name,sex,age,qq);
System.out.println(p.toString());
if(qq.matches("[1-9][0-9]{4,11}")) {
System.out.println("QQ号码合法~");
}
}
} class Person{ private String name;
private String sex;
private int age;
private String qq;
public Person(String name, String sex, int age, String qq) {
super();
this.name = name;
this.sex = sex;
this.age = age;
this.qq = qq;
}
public Person() {
super();
}
@Override
public String toString() {
return "Person [name=" + name + ", sex=" + sex + ", age=" + age + ", qq=" + qq + "]";
} }

java基础1.5版后新特性 自动装箱拆箱 Date SimpleDateFormat Calendar.getInstance()获得一个日历对象 抽象不要生成对象 get set add System.arrayCopy()用于集合等的扩容的更多相关文章

  1. Java基础知识强化66:基本类型包装类之JDK5新特性自动装箱和拆箱

    1. JDK1.5以后,简化了定义方式. (1)Integer  x = new  Integer(4):可以直接写成如下:         Integer  x = 4 ://自动装箱,通过valu ...

  2. JDK5.0新特性(静态导入、自动装箱/拆箱、增强for循环、可变参数、枚举、泛形)

    JDK5中新增了很多新的java特性,利用这些新语法可以帮助开发人员编写出更加高效.清晰,安全的代码. 这些新特性主要有:1.静态导入2.自动装箱/拆箱3.增强for循环4.可变参数5.枚举6.泛型7 ...

  3. java自动装箱拆箱总结

    对于java1.5引入的自动装箱拆箱,之前只是知道一点点,最近在看一篇博客时发现自己对自动装箱拆箱这个特性了解的太少了,所以今天研究了下这个特性.以下是结合测试代码进行的总结. 测试代码: int a ...

  4. JAVA自动装箱拆箱与常量池

    java 自动装箱与拆箱 这个是jdk1.5以后才引入的新的内容,作为秉承发表是最好的记忆,毅然决定还是用一篇博客来代替我的记忆: java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的 ...

  5. Java的自动装箱/拆箱

    概述 自JDK1.5开始, 引入了自动装箱/拆箱这一语法糖, 它使程序员的代码变得更加简洁, 不再需要进行显式转换.基本类型与包装类型在某些操作符的作用下, 包装类型调用valueOf()方法将原始类 ...

  6. Java中的自动装箱拆箱

    Java中的自动装箱拆箱 一.自动装箱与自动拆箱 自动装箱就是将基本数据类型转换为包装类类型,自动拆箱就是将包装类类型转换为基本数据类型. 1 // 自动装箱 2 Integer total = 90 ...

  7. Java 的自动装箱拆箱

    Java 是面向对象的语言,其基本数据类型也就有了相对应的类,称为包装类.以下是基本数据类型对应的包装类: 基本数据类型 包装类 byte(1字节) Byte short(2字节) Short int ...

  8. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法?

    参考:http://blog.csdn.net/mazhimazh/article/details/16799925 1. Java八种基本数据类型的大小,以及封装类,自动装箱/拆箱的用法? 原始类型 ...

  9. JAVA的自动装箱拆箱

    转自:http://www.cnblogs.com/danne823/archive/2011/04/22/2025332.html 蛋呢  的空间 ??什么是自动装箱拆箱 基本数据类型的自动装箱(a ...

随机推荐

  1. C语言实现通用链表初步(二)

    接着上次的内容,我们继续! 还是无头单向非循环链表.假如要删除某个节点,如何实现? //删除成功返回0,失败返回-1 int slist_del(struct node_info *node, str ...

  2. Java反射机制分析指南

    一.JAVA是动态语言吗? 一般而言,说到动态言,都是指在程序运行时允许改变程序结构或者变量类型,从这个观点看,JAVA和C++一样,都不是动态语言. 但JAVA它却有着一个非常突出的动态相关机制:反 ...

  3. 连接Mysql时出现java.math.BigInteger cannot be cast to java.lang.Long问题

    今天遇见这样一个坑.在连接数据库进行查询数据时,大家可能会遇见这样一个问题:java.math.BigInteger cannot be cast to java.lang.Long,然后去检查代码中 ...

  4. webpack优化技术参考

    https://jeffjade.com/2017/08/12/125-webpack-package-optimization-for-speed/ 加速构建webpack.

  5. 选择、循环与函数结构:MATLAB VS Python

    选择.循环与函数结构:MATLAB VS Python 整理基本的程序控制结构,主要是选择 和 循环. 1.MATLAB选择结构 (1)单分支if语句格式: if 条件 语句组 end (2)双分支i ...

  6. Android Recyclerview隐藏item的所在区域显示大空白问题的解决方案

    最近搞了下Recyclerview,做了增加.删除item的功能.item上方有卡签 插个图片看下效果,点击底下的添加上去,同时,底下的item消失,这个用notifyItemInserted和not ...

  7. Python3爬虫04(其他例子,如处理获取网页的内容)

    #!/usr/bin/env python# -*- coding:utf-8 -*- import osimport reimport requestsfrom bs4 import Navigab ...

  8. MVC框架的实现

    现在web开发基本都是MVC的架构了,struts.springMvc 等等.其中一个重要的功能就是将客户发起的请求,分发至我们定义的Action里面的方法之中. 闲暇之余,我也做了一个类似于spri ...

  9. Oracle三种循环例题:打印九九乘法表

    数据库SQL三种循环语句(For.While.Loop) --如果要将执行结果输出,需要先执行 setserveroutput on 命令,在窗口里显示服务器输出信息 set serveroutput ...

  10. linux下使用iperf测试服务器带宽

    准备工具 1.2台Linux服务器(要求其中至少1台主机为腾讯云主机,另外一台任意主机均可,确保2台主机可以互相访问即可)2.Iperf软件为专业网络性能测试工具. 测试目标 上海地区主机外网带宽是否 ...