Java学习笔记4

1:自动装箱和拆箱

装箱:把基本数据类型转换为对应的包装类类型

Integer i = Integer.valueof(100); //装箱
Integer ii = 100; //自动装箱,也做了装箱的动作,只不过看不到,简化了步骤。

拆箱:把包装类类型转换为对应的基本数据类型

ii = 100;
ii = ii.intvalue()+200; //手动拆箱,
// ii.intvalue()这个操作称为拆箱。
ii += 200//ii+200自动拆箱,ii=ii+200自动装箱。

注:在使用包装了类型时,要判断是否为null。

Integer a = null;
a += 100;

会报错,因为a += 100中包含了a.intvalue()的拆箱,null后不能加方法,
改正方法:加一个判断:

Integer a = null;
if(a != null){
    a += 100;
}

2:Date类

构造方法:
public Date() 分配一个Date对象,并初始化,精确到毫秒。
public Date(long date) 分配一个Date对象,并将其初始化为表示从标准基准时间起指定的毫秒数

public class DateDemo{
    public static void main(string[] args){
        Date d1=new Date();
        system.out.println(d1);

        long date = 1000*60*60
        Date d2= new Date(date);
        system.out.println(d2);
    }
}

常用方法:
public long getTime() 获取从1970.1.1的00:00:00到现在的毫秒值
public void setTime(long time) 设置时间,毫秒值

Date d=new Date();
System.out.println(d.getTime()*1.0/1000/3600/24/365+"年");
long time = 1000*60*60
d.setTime(time) ;
System.out.println(d);

3:SimpleDateFormat类

日期和时间格式由日期和时间模式字符指定,从A-Z,a-z引导的字母被解释为表示日期或时间字符串的组件的模式字母。
常用:y–年,M–月,d–日,H–时,m–分,s–秒
构造方法

public SimpleDateFormat() 构造一个SimpleDateFormat,使用默认模式和日期格式
public SimpleDateFormat(String pattren) 构造一个SimpleDateFormat使用给定的模式和日期格式。

SimpleDateFormat格式化和解析日期。
1:格式化:从Date到String
public final String format(Date date); 将日期格式化成日期/时间字符串
2:解析:从String到Date
public Date parse(String source); 从给定字符串的开始解析文本以生成日期

 public class SimpleDateFormatDemo{
    public static void main(string[] args){
        //格式化:从Date到String
        Date d = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat();
        String s = sdf.format(d);
        System.out.println(s);
        //解析:从String到Date
        String ss = "2020-08-08 10:10:10";
        SimpleDateFormat sdf2 = new SimpleDateFormat(pattern:"yyyy-MM-dd HH:mm:ss");// 这里的格式要和前面的格式互相对应
        Date dd = sdf2.parse(ss);
        System.out.println(dd);
    }
}

4:Calendar类

Calendar为某一时刻和一组日历字段之间的转换提供了方法,并为操作日历字段提供了一些方法 Calendar提供了一个类方法
getInstance用于获取Calendar对象,已使用当前日期和时间初始化:

Calendar rightNow = Calendar.getInstance(); //初始化
public class CalendarDemo{
    public static void main(string[] args){
        //获取对象
        Calendar c= Calendar.getInstance();
        //获取年月日
        int year = c.get(Calendar . YEAR);
        int month = C. get(Calendar .MONTH) + 1;//注:需要做+1的操作
        int date = c. get(Calendar .DATE);
        //输出日历
        System. out . println(year + "年" + month +" + date +“日");
    }
}

Calendar的常用方法:

public int get(int field) 返回给定日历字段的值 public abstract vord add(int
field, int amount) 将指定的时间量添加或减去给定的日历 public final void set(int
year,int month,int date) 设置当前日历的年月日

public class CalendarDemo{
    public static void main(string[] args){
        //获取对象
        Calendar c= Calendar.getInstance();
        //获取年月日
        int year = c.get(Calendar . YEAR);
        int month = c. get(Calendar .MONTH) + 1;//注:需要做+1的操作
        int date = c. get(Calendar .DATE);

        //public abstract vord add(int field, int amount)
        //三年前的今天
        c.add(Calendar . YEAR,amount:-3);
        //十年后的五天前
        c.add(Calendar . YEAR,amount:+10);
        c.add(Calendar . DATE,amount:-5);
         
         //public final void set(int year,int month,int date)  
         c.set(year:2020,month:10,date:10);
    }
}

5:异常

异常体系:

Throwable分为Error和Exception
Exception又分为RuntimeException和非RuntimeException Error:严重问题,不需要处理
Exception:异常类,表示程序本身可以处理的问题

●RuntimeException: 在编译期是不检查的,出现问题后,需要我们回来修改代码
●非RuntimeException:编译期就必须处理的,否则程序不能通过编译,就更不能正常运行了

默认处理方案:
●把异常的名称,异常原因及异常出现的位置等信息输出在了控制台
●程序停止执行
1):try…catch…

try{
    可能出现异常的代码;
}catch(异常类名 变量名){
    异常的处理代码;
}

//try…catch…可以使结果运行下去

2):throws 异常类名;

注:这个格式跟在方法的口号后面。

Throwable的成员方法

public String getMessage() 返回此throwable的详细消息字符串
public String toString() 返回此可抛出的简短描述
public void printStackTrace() 把异常的错误信息输出在控制台

6:集合:提供一种存储空间可变的存储模型。

集合类体系结构:

集合分为Collection单列Map 双列
Collection单列分为 List可重复Set 不可重复

  • List实现类(Arraylist,Linklist,…)
  • Set实现类(HashSet,TreeSet,…)
  • Map实现类(HashMap,…)

Collection,List,Set,Map都为接口。

7:Collection集合

创建Collection集合的对象
●多态的方式
●具体的实现类Arraylist

public class CollectionDemo {
    public. static void main(String[] args) {
    //创建Collection集合的对象
        Collection<String> c = new ArrayList<String>();
        //添加元素
        c.add("hello");
        c.add("world")System.out.println(c);
    }
}

Collection集合的常用方法

boolean add(E e) 添加元素
boolean remove(Objecto) 从集合中移除指定的元素
void clear() 清空集合中的元素
boolean contains(Object o) 判断集合中是否存在指定的元素
boolean isEmpty() 判断集合是否为空
int size()集合的长度,也就是集合中元素的个数

public class CollectionDemo {
    public. static void main(String[] args) {
        Collection<String> c = new ArrayList<String>();
        c.add("hello");//添加
        c.remove("hello")//添加
        c.clear();//清除
        System.out.println(c.isEmpty());//检验集合是否为空
        System.out.println(c.size());//返回集合中元素的个数
    }
}

Collection集合的遍历
iterator:迭代器,集合的专用遍历方式。
iterator iterator(): 返回此集合中元素的迭代器,通过集合的iterator()方法得到

iterator中的常用方法
E next() :返回迭代中的下一个元素
boolean hasNext(): 如果迭代具有更多元素,则返回true

Collection<String> c = new ArrayList<String>();
c.add("hello");
iterator<String> it = c. iterator();
System.out.println(it.next());
if(it.hasNext()){
    System.out.println(it.next());
}

8:List集合,有序集合即序列

特点:有序,可重复

public class ListDemo01 {
    public. static void main(String[] args) {
    //创建集合对象
        List<String> list = new ArrayList<String>();
        //添加元素
        list. add("he1lo");
        list. add("world");
        list. add("java");
        list. add("world");
        System. out . println(list);
        //迭代器的方式遍历
        iterator<String> it = list. iterator();
        while(it.hasNext()){
            String s = it.next();
            System.out.println(s);
        }
    }
}

List集合的特有方法:
void add(int index,E element) 在集合中指定位置插入指定的元素
E remove(int index) 删除指定索引处的元素,返回被删除的元素
E set(int index,E element) 修改指定索引处的元素,返回被修改的元素
E get(int index) 返回指定索引处的元素

list.add(index:1,element:"hello");
list.remove(index:1);
list.set(index:1,element:"hello");
list.get(index:1);
//遍历list集合
for(int i=0; i<list.size(); i++){
    String s = list.get(i);
    System.out.println(s);
}

并发修改异常:

ConcurrentModificationException

产生原因
●迭代器遍历的过程中 ,通过集合对象修改了集合中元素的长度,造成了迭代器获取元素中判断预期修改值和实际修改值不一致

解决方案
●用for循环遍历,然后用集合对象做对应的操作即可

列表迭代器listIterator
●可延任何方向遍历
●通过List集合的listIterator()得到,是List集合特有的迭代器

Listlterator中的常用方法
●E next():返回迭代中的下一个元素
●boolean hasNext():如果迭代具有更多元素,则返回true
●E previous():返回列表中的上一个元素
●boolean hasPrevious():如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
●void add(E e):将指定的元素插入列表

//得到listIterator
ListIterator<String> lit = list.listlterator();
//正向遍历
while(lit.hasNext()){
    String s = lit.next();
    System.out.println(s);
}
//逆向遍历
while(lit.hasPrevious()){
    String s = lit.previous();
    System.out.println(s);
}

增强for循环:简化数组和Collection集合的遍历

格式:
for(元素数据类型 变量名:数组或者Collection集合){
//在此处使用变量即可,
}

举例:

int[] arr={1,2,3,4,5};
for(int i:arr){
    System.out.println(i);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现
C语言是一种广泛使用的编程语言,它具有高效、灵活、可移植性强等特点,被广泛应用于操作系统、嵌入式系统、数据库、编译器等领域的开发。C语言的基本语法包括变量、数据类型、运算符、控制结构(如if语句、循环语句等)、函数、指针等。下面详细介绍C语言的基本概念和语法。 1. 变量和数据类型 在C语言中,变量用于存储数据,数据类型用于定义变量的类型和范围。C语言支持多种数据类型,包括基本数据类型(如int、float、char等)和复合数据类型(如结构体、联合等)。 2. 运算符 C语言中常用的运算符包括算术运算符(如+、、、/等)、关系运算符(如==、!=、、=、<、<=等)、逻辑运算符(如&&、||、!等)。此外,还有位运算符(如&、|、^等)和指针运算符(如、等)。 3. 控制结构 C语言中常用的控制结构包括if语句、循环语句(如for、while等)和switch语句。通过这些控制结构,可以实现程序的分支、循环和多路选择等功能。 4. 函数 函数是C语言中用于封装代码的单元,可以实现代码的复用和模块化。C语言中定义函数使用关键字“void”或返回值类型(如int、float等),并通过“{”和“}”括起来的代码块来实现函数的功能。 5. 指针 指针是C语言中用于存储变量地址的变量。通过指针,可以实现对内存的间接访问和修改。C语言中定义指针使用星号()符号,指向数组、字符串和结构体等数据结构时,还需要注意数组名和字符串常量的特殊性质。 6. 数组和字符串 数组是C语言中用于存储同类型数据的结构,可以通过索引访问和修改数组中的元素。字符串是C语言中用于存储文本数据的特殊类型,通常以字符串常量的形式出现,用双引号("...")括起来,末尾自动添加'\0'字符。 7. 结构体和联合 结构体和联合是C语言中用于存储不同类型数据的复合数据类型。结构体由多个成员组成,每个成员可以是不同的数据类型;联合由多个变量组成,它们共用同一块内存空间。通过结构体和联合,可以实现数据的封装和抽象。 8. 文件操作 C语言中通过文件操作函数(如fopen、fclose、fread、fwrite等)实现对文件的读写操作。文件操作函数通常返回文件指针,用于表示打开的文件。通过文件指针,可以进行文件的定位、读写等操作。 总之,C语言是一种功能强大、灵活高效的编程语言,广泛应用于各种领域。掌握C语言的基本语法和数据结构,可以为编程学习和实践打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安然907

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值