System.out.println(10+”*”+20+”=”);控制台输出?

版权声明:本文为博主原创文章,遵循 版权协议,转载请附上原文出处链接和本声明。



基本格式:格式控制符以一个%开始,一个字母结束,字母规定了方法按照何种方式打印这个值,例如d表示十进制整数(int),f表示浮点数(double).


%d代替后面的参数,格式字符串中的格式控制字符的个数必须与后面提供的参数个数相匹配。


}


Error:严重问题,不需要处理
Exception:称为异常类,它表示程序本身可以处理的问题

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

如果程序出现了问题,我们没有做任何处理,最终VM会做默认的处理

  • 把异常的名称,异常原因及异常出现的位置等信息输出在了控制台
//可能出现异常的代码 }catch(异常类名 变量名){
  1. 程序从try里面的代码开始执行
  2. 出现异常,会自动生成一个异常类对像,该异常对像将被提交给Java运行时系统
  3. 当Java运行时系统接收到异常对象时,会到catch中去找匹的异常类,找到后进行异常的处理
  4. 执行完毕之后,程序还可以继续往下执行
}catch(异常类名 变量名){
返回此throwable的详细消息字符串
返回此可抛出的简短描述
把异常的错误信息输出在控制台
}catch(异常类名 变量名){

1.5 编译时异常和运行时异常的区别

Java中的异常被分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常
所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常

  • 编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译
  • 运行时异常:无需显示处理,也可以和编译时异常一样处理

虽然我们通过try…catch…可以对异常进行处理,但是并不是所有的情况我们都有权限进行异常的处理
也就是说,有些时候可能出现的异常是我们处理不了的,这个时候该怎么办呢?
针对这种情况,Java提供了throws的处理方案

注意:这个格式是跟在方法的括号后面的

  • 编译时异常必须要进行处理,两种处理方案:ty.catch…或者throws,如果采用throws这种方案,将来谁调用谁处理
  • 运行时异常可以不处理,出现问题后,需要我们回来修改代码
这个格式跟在方法名的后面
用在方法声明后面,跟的是异常类名 用在方法体内,跟的是异常对象名
表示抛出异常,由该方法的调用者来处理 表示抛出异常,由方法体内的语句处理
表示出现异常的一种可能性,并不一定会发生这些异常 执行throw一定抛出了某种异常

集合的特点:提供一种存储空间可变的存储模型,存储的数据容量可以随时发生改变

  • 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
  • JDK不提供此接口的任何直接实现,它提供更具体的子接口(如Set和List)实现
从集合中移除指定的元素
判断集合中是否存在指定的元素
集合的长度,也就是集合中元素的个数

Iterator:迭代器,集合的专用遍历方式

  • 迭代器是通过集合的Jiterator()方法得到的,所以我们说它是依赖于集合而存在的
  • E next():返回迭代中的下一个元素

2.5 集合的使用步骤

需求:创建一个存储学生对象的集合,存储3个学生对像,使用程序实现在控制台遍历该集合

⑤遍历集合(迭代器方式)

//遍历集合(迭代器方式)
  • 有序集合(也称为序列),用户可以精确控制列表中每个元素的插入位置。用户可以通过整数索引访问元素,并搜索列表中的元素
  • 与Set集合不同,列表通常允许重复的元素
  • 有序:存储和取出的元素顺序一致
  • 可重复:存储的元素可以重复
有序:存储和取出的元素顺序一致 可重复:存储的元素可以重复*/
在此集合中的指定位置插入指定的元素
删除指定索引处的元素,返回被删除的元素
修改指定索引处的元素,返回被修改的元素

3.3 list集合存储学生对象并遍历

需求:创建一个存储学生对象的集合,存储3个学生对像,使用程序实现在控制台遍历该集合
②创建List集合对象
⑤遍历集合(迭代器方式,for循环方式)

有序:存储和取出的元素顺序一致 可重复:存储的元素可以重复*/ //遍历集合(迭代器方式)
  • 通过List集合的listlterator()方法得到,所以说它是List集合特有的迭代器
  • 用于允许程序员沿任一方向遍历列表的列表迭代器,在迭代期间修改列表,并获取巧列表中迭代器的当前位置
返回迭代中的下一个元素
如果迭代具有更多元素,则返回true
返回列表中的上一个元素
如果此列表迭代器在相反方向遍历列表时具有更多元素,则返回true
  • 实现Iterable接口的类允许其对象成为增强型for语句的目标
  • 它是DKS之后出现的,其内部原理是一个lteratori迭代器
//在此处使用变量即可,该变量就是元素

3.6 案例:List集合存储学生对像用三种方式遍历

需求:创建一个存储学生对象的集合,存储3个学生对像,使用程序实现在控制台遍历该集合
②创建List集合对象
迭代器:集合特有的遍历方式
普通for:带有索引的遍历方式
增强for:最方使的遍历方式

有序:存储和取出的元素顺序一致 可重复:存储的元素可以重复*/ //遍历集合(迭代器方式)
  • 数据结构是计算机存储、组织数据的方式。是指相互之间存在一种或多种特定关系的数据元素的集合
  • 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率

3.8 常见数据结构之栈

  • 数据进入栈模型的过程称为:压/进栈
  • 数据离开栈模型的过程称为:弹/出栈
  • 栈是一种数据先进后出的模型

3.9 常见数据结构之队列

  • 数据从后端进入队列模型的过程称为:入队列
  • 数据从前端离开队列模型的过程称为:出队列
  • 队列是一种数据先进先出的模型

3.10 常见数据结构之数组

  • 数组是一种查询快,增删慢的模型
  • 查询数据通过索引定位,查询任意数据耗时相同,查询效率高
  • 删除数据时,要将原始数据删除,同时后面每个数据前移,删除效率低
  • 添加数据时,添加位置后的每个数据后移,再添加元素,添加效率极低

3.11 常见数据结构之链表

在数据AC之间添加一个数据B,保存在地址54位置

  1. 在数据B对应的下一个数据地址指向数据C
  2. 在数据A对应的下一个数据地址指向数据B

在数据AC之间添加一个数据B,保存在地址54位置,删除数据BD之间的数据C

  1. 数据B对应的下一个数据地址指向数据D
  • 查询数据D是否存在,必须从头(head)开始查询
  • 查询第3个数据,必须从头(head)开始查询
  1. 链表是一种增删快的模型(对比数组)
  2. 链表是一种查询慢的模型(对比数组)
  • ArrayList::底层数据结构是数组,查询快,增删慢
  • LinkedList:底层数据结构是链表,查询慢,增删快

3.13 案例:ArrayList集合存储学生对象用三种方式遍历

需求:创建一个存储学生对象的集合,存储3个学生对像,使用程序实现在控制台遍历该集合
迭代器:集合特有的遍历方式
普通for:带有索引的遍历方式
增强for:最方便的遍历方式

在该列表开头插入指定的元素
将指定的元素追加到此列表的末尾
返回此列表中的第一个元素
返回此列表中的最后一个元素
从此列表中删除并返回第一个元素
从此列表中删除并返回最后一个元素
  • 没有带索引的方法,所以不能使用普通o循环遍历
没有带索引的方法,所以不能使用普通o循环遍历 HashSet:对集合的迭代顺序不作任何保证

哈希值:是JDK根据对象的地址或者字符串或者数字算出来的int类型的数值

Object类中有一个方法可以获取对像的哈希值

  • 同一个对象多次调用hashCode()方法返回的哈希值是相同的
  • 默认情况下,不同对象的哈希值是不同的。而重写hashCode()方法,可以实现让不同对象的哈希值相同
//同一个对象多次调用HashCode()方法返回的哈希值是相同的 //默认情况下,不同对象的哈希值不同 //通过方法重写,可以实现不同对象的哈希值相同(重写equals()和hashCode()方法)
  • 对集合的迭代顺序不作任何保证,也就是说不保证存储和取出的元素顺序一致
  • 没有带索引的方法,所以不能使用普通fo循环遍历
  • 由于是St集合,所以是不包含重复元素的集合
//set集合,不包含重复的元素

4.4 常见数据结构之哈希表

  • JDK8之前,底层采用数组+链表实现,可以说是一个元素为链表的数组
  • JDK8以后,在长度比较长的时候,底层实现了优化

4.5 案例:HashSet集合存储学生对像并遍历

需求:创建一个存储学生对象的集合,存储多个学生对象,使用程序实现在控制台遍历该集合
要求:学生对象的成员变量值相同,我们就认为是同一个对像
⑤遍历集合(增强for)
⑥在学生类中重写两个方法

//添加学生元素到集合
  • 哈希表和链表实现的St接口,具有可预测的迭代次序
  • 由链表保证元素有序,也就是说元素的存储和取出顺序是一致的
  • 由哈希表保证元素唯一,也就是说没有重复的元素
//哈希表保证元素的唯一性,也就是说没有重复的元素
  • 元素有序,这里的顺序不是指存储和取出的顺序,而是按照一定的规则进行排序,具体排序方式取决于构造方法
  • 没有带索的方法,所以不能使用普通f和r循环遍历
  • 由于是Set集合,所以不包含重复元素的集合
//TreeSet():根据其元素的自然排序进行排序

更多内容请访问博主博客:逸乐的博客 - 今晚一起吃火锅

文章如有纰漏请指出,整理不易多多包涵。

Java后续笔记将持续更新…

本文经用户投稿或网站收集转载,如有侵权请联系本站。

}

还非得用循环?我是新手,刚看的。想不懂。

引用类型,打印是调用的toString(),一般打印地址值。要打印数组里面的东西,得循环获得数组里的数据,就是获得基本类型的数据才能打印

1.直接打印对象会调用该对象的toString方法,你查看下数组的引用没有改方法,而Arrays类有该方法,并且定义了输出格式,所以可以打印出数组。

除了char数组外。。。
3Q, 您解决了我的疑问

数组存的是地址。 而且还是根据下标存的值。 肯定要用循环啊。

那就用循环吧,怎样方便怎样用就是了。电脑配置还可以,不需要换。

还有如果主板太旧,每个内存插槽只能插2g,那样也不能加到8g,这样干脆电脑全换新得了

你32位系统只能用前3.5g左右,剩下你用不了,你要换cpu,支持64位,比如i5 4590不错

如果只换内存条的话,其实意义不大,因为CPU的速度在那,不过可以多开些东西。 如果实在经济受限,建议还是先忍忍到时候整个换吧,可以优化优化电脑,该清的清掉……

我靠,我以前也是G450,不过,现在换笔记本了,i5+8g内存,公司每个月补贴100块
这都可以!!!!!貌似我这个最大才支持4G可以不?

我靠,我以前也是G450,不过,现在换笔记本了,i5+8g内存,公司每个月补贴100块

[quote=引用 6 楼 bree06的回复:]一般要求不会很高,普通的web项目吃内存都不大。大不了就慢一点无所谓啦
多谢,我就担心cpu什么的问题。我想去换个内存和硬盘。[/quote] 如果只是单纯用来学习的话,差不多够用了,初学写不出太耗资源的程序,不过随着学习的深入,需要同时跑IDE,tomcat,数据库这些的时候,可能稍微吃点儿资源,8G内存也够了,等你什么时候发现电脑慢到无法忍受了,再换不迟。
一般要求不会很高,普通的web项目吃内存都不大。大不了就慢一点无所谓啦
多谢,我就担心cpu什么的问题。我想去换个内存和硬盘。

一般要求不会很高,普通的web项目吃内存都不大。大不了就慢一点无所谓啦

}

我要回帖

更多关于 int(input())报错 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信