文章目录

  • 一:static 为什么不能定义在方法里
  • 二:“&&”与 “&”都表示”逻辑与“,那么它们之间的区别在哪里呢?
  • 三:三元运算符的好处体现在哪里?
  • 四:String-Builder与String 区别
  • 五:Java 虚拟机内存消耗待尽,如何解决?
  • 六:异常
  • 七:集合与数组区别
  • 八:为何需要实现Comparable接口,Comparable 接口的意义和用法
  • 九:java中System.in.read();是什么意思
  • 十:getClass()的作用

一:static 为什么不能定义在方法里

解答:
第一个方面:
static是成员变量及方法的修饰符,是属于类本身的数据字段
第二个方面:
在方法体中定义的变量称之为局部变量,方法体执行结束后,局部变量会自动销毁。
而static 定义的变量是一个静态的变量,它的作用肯定是为了让这个变量内外界都能被访问或读写,所以我们只能在类中去使用static 关键字
结论:
static关键字,只能用来定义成员变量和成员方法。
不能定义局部变量

二:“&&”与 “&”都表示”逻辑与“,那么它们之间的区别在哪里呢?

解答:
“&”会判断两边表达式是否都为true或flase,才会得出最终结果,被称为“非短路”运算符。
“&&”当第一个表达式为 false 时,则不会去判断第二个表达式,被称为“短路”运算符。

三:三元运算符的好处体现在哪里?

解答: 拿三元与 if 代码做比较如下
【1】
boolean b = 20<45?true:false;
【2】
if(20<45)
System.out.println(“true”);
else
System.out.println(“false”);

一行代码就解决了四行代码解决的问题

四:String-Builder与String 区别

“+”虽然可以附加新字符或字符串,但“+”会产生一个新的 String 实例,会在内存中创建新的字符串对象。如果重复地对字符串进行修改,将极大地增加系统开销。

那么我们要反复进行修改字符串,且不想大量消耗系统时该怎么做?

解决办法: 使用 String-Builder类,大大提高了频繁增加字符串的效率

五:Java 虚拟机内存消耗待尽,如何解决?

如果Java 虚拟机内存消耗待尽,它将不会执行垃圾回收处理,这种时候该怎么办呢?

解决: Java 提供了 System.gc() 方法来强制启动垃圾回收器

六:异常

class MyException extends Exception{     //创建自定义异常类String message;                   //定义 String 类型变量public MyException(String ErrorMessage) {   //父类方法message = ErrorMessage;}public String getMessage() {return message;}
}public class Captor {          //创建类static int quotient(int x,int y)throws MyException{    //定义方法抛出异常if(y<0) {                          //判断参数是否小于0throw new MyException("除数不能是负数");  //异常信息}return x/y;}public static void main(String[] args) {try {                                    //try 语句包含可能发生异常的语句int result = quotient(3,0);}catch (MyException e) {             //处理自定义异常System.out.println(e.getMessage());}catch(ArithmeticException e) {         //处理 ArithmeticException 异常System.out.println("除数不能为0");}catch (Exception e) {                    //处理其他异常System.out.println("程序发生了其他的异常");}}}

提问: 我不太能理解,为什么我调用quotient()方法并传递3和0两个参数进去后,该方法明明是针对抛出异常交给 MyException 来进行处理
那么当经过代码 return x/y 时,会发生异常,但为什么却是交给 catch(ArithmeticException e) 这个语句块里执行,不太明白,明明不是抛出给MyException 来进行处理吗。

经过我自己的思考后,我是这么理解的:

角度一:
抛出的异常类型为 ArithmeticException 所以会交给catch(ArithmeticException e)来执行
角度二:
在代码执行中,若出现了系统自带的异常,则优先处理系统自带的,而不会交给抛出的指定异常类才处理。
角度三:
return x/y; 这条代码发生了异常,它并没有抛出给方法外给 MyException 来处理,而是由系统直接拦截后锁定为 ArithmeticException 异常类型后,所以会由catch(ArithmeticException e)来执行

七:集合与数组区别

1、数组的长度是固定的,集合的长度是可变的
2、数组用来存放基本类型的数据,集合用来存放对象的引用

八:为何需要实现Comparable接口,Comparable 接口的意义和用法

为何需要实现Comparable接口,Comparable 接口的意义和用法(这篇博客写的淋淋尽致,感谢博主分享)

九:java中System.in.read();是什么意思

System.in.read()可以实现输入字符,返回字符的Unicode码,但是缺点是只能输入一个字符
System.in.read() 返回的是输入数值的 ASKII 码(一个 int 整数)。

十:getClass()的作用

getClass() 返回此 Object 的运行时该对象的类. 该方法返回一个Class对象, 可以通过该对象可以获取某个类的相关信息, 如构造方法 属性 方法 等。

举例:
class Student{

}

那么:
Student s = new Student();
s.getClass() 得到的是内存中实实在在存在的Student 这个类

Java学习之路 之 提问及解决篇相关推荐

  1. Java学习之路——接口

    Java学习之路--接口 概述 总所周知,我们是父母的孩子.我们的身上既继承了爸爸的基因也继承了妈妈的基因.这就是多继承. 然而在 Java 程序中,是不支持多继承的.Java 仅仅支持单继承.但是接 ...

  2. JAVA学习之路:不走弯路,就是捷径(一)

      0.引言 在ChinaITLAB导师制辅导中,笔者发现问得最多的问题莫过于"如何学习编程?JAVA该如何学习?".类似的问题回答多了,难免会感觉厌烦,就萌生了写下本文的想法.到 ...

  3. 个人开发经历--我的java学习之路(学校篇)

    个人开发经历--我的java学习之路(学校篇) 个人介绍: 姓名: 不在这里说明 联系信息: 个人历程 jdbc阶段 sql生成器 一代代码生成器 servlet阶段 servlet项目中,sql生成 ...

  4. 萌新的java学习之路——第一周

    萌新的java学习之路--第一周 第一周的学习 这是我学习Java的第一周,写这个博客更多的时为了总结自己这一周的学习情况,如果有人看到我写的博客,有什么问题的话,可以问我.虽然我也是一个小白,但我会 ...

  5. Java学习之路-预科

    Java学习之路-预科 第一章 学习计算机的基本知识 文章目录 Java学习之路-预科 前言 一.什么是计算机? 二.硬件及冯诺依曼结构 1.计算机硬件 1.1 计算机硬件组成 1.2 什么是装机 1 ...

  6. java学习之路目录(已完结)

    java学习之路目录(持续更新中-) 第一阶段 javaSE(完结) 序号 标题 内容 001 java初识 java语言特点.体系结构.运行机制 002 java SE基础语法 注释.关键字.变量. ...

  7. java学习之路2--简单工厂模式实现饮料自动贩卖机

    java学习之路2 用简单工厂模式实现饮料自动贩卖机 功能简介 具体实现 1.简单工厂模式 2.代码 总结 用简单工厂模式实现饮料自动贩卖机) 功能简介 接收用户输入的信息,选择购买的饮料. 可供选择 ...

  8. 我的Java学习之路2009-11-17

    -------------------------------2009年3月19日开始----------------------------- 下载JDK Myeclipse Netbeans JB ...

  9. Java学习之路1——安装JDK1.8||安装idea2022||Java项目创建【重拾Java】

    Java学习之路1--安装JDK1.8||安装idea2022[重拾Java] 前言 安装 安装JDK1.8 安装idea2022(JetBrains Toolbox) Java项目创建 创建 项目结 ...

  10. 菜鸟haqima的Java学习之路第一天

    菜鸟haqima的Java学习之路第一天 导读:DOS命令 常用快捷键 Java的简单概述 (第一章 Java开发环境的搭建) 1.常用的DOS命令 1.1.怎么打开DOS命令窗口 win键+r(组合 ...

最新文章

  1. miniconda安装,及channels配置,安装其他软件
  2. 笔记本电脑投屏到电视_Thinkpad笔记本PC无线连接电视或投影机,性能稳定的商用投屏解决方案...
  3. swift版的GCD封装
  4. Ruby 101:重用、隐藏和多态
  5. 当年这个决定,让李飞飞奠定 AI 江湖的女王地位
  6. php通过ip地址查询位置,PHP通过IP获取地理位置
  7. ESXI5.1 数据备份与恢复
  8. 自定义“TB_定位访问”子类
  9. ArrayList Vector LinkedList 区别与用法
  10. python爬取酷狗音乐歌词_python爬虫教程:爬取酷狗音乐
  11. Bada学习-SDK的安装
  12. 如何跳过计算机配置直接开机,WIN7开机怎么跳过欢迎界面_win7怎样跳过电脑开机欢迎界面-win7之家...
  13. 三七女生节,解密阿里女程序员们的代码诗!
  14. wxj platte
  15. 基于JAVA心灵治愈服务平台计算机毕业设计源码+系统+数据库+lw文档+部署
  16. vb.net中关于byval和byref的使用
  17. google和edge浏览器崩溃,错误代码: STATUS_STACK_BUFFER_OVERRUN
  18. 再谈 Go 语言在前端的应用前景
  19. 【Python实战】再分享一款商品秒杀小工具,我已经把压箱底的宝贝拿出来啦~
  20. 教你如何完全解析Kotlin中的类型系统

热门文章

  1. 【转】golang 结构体和方法
  2. CentOS和Ubuntu哪个好?
  3. ASP.NET MVC上传限制
  4. .net中序列化读写xml方法的总结
  5. 现代软件工程 阅读笔记
  6. C# 随机数生成避免重复
  7. 树形dp 没有上司的舞会
  8. POJ 1026 Cipher
  9. 【收藏】图解最常用的10个机器学习算法!
  10. python——迭代器itertools.cycle