day2 javaee的入门知识「建议收藏」

day2 javaee的入门知识「建议收藏」1、面向对象与面向过程的区别?面向过程的语言拥有封装、继承、多态的特性,使得整个代码灵活性高,比如Java,C++。容易维护,容易扩展。面向过程的语言直接跟内存打交道,性能要更好,比如java是需要跟虚拟机做交互,先编译解释成机器码。再跟操作系统打交道。大多数面向过程的语言基本都是直接编译成机器码在操作系统上进行执行。所以性能更好。但是java经过多年的发展,性能提升了很大,各位读者要记住javayyds!2、成员变量和局部变量的区别与c++不同的是java中没有全局变量的概念。成员变量:也称

大家好,又见面了,我是你们的朋友全栈君。

1、面向对象与面向过程的区别?
面向过程的语言拥有封装、继承、多态的特性,使得整个代码灵活性高,比如Java,C++。容易维护,容易扩展。
面向过程的语言直接跟内存打交道,性能要更好,比如java是需要跟虚拟机做交互,先编译解释成机器码。再跟操作系统打交道。大多数面向过程的语言基本都是直接编译成机器码在操作系统上进行执行。所以性能更好。
但是java经过多年的发展,性能提升了很大,各位读者要记住java yyds!

2、成员变量和局部变量的区别
与c++不同的是java中没有全局变量的概念。
成员变量:也称为类变量,是定义在类中的变量。
局部变量:是定义在形参,或者是方法体内,或者是代码快中的变量。
**注意:静态代码块中只能给静态变量赋值
关于静态方法,静态变量的内容可以参考文章
https://blog.csdn.net/xxlovect/article/details/7455813

接上:关于成员变量与局部变量的赋值问题
如果一个变量被定义为static那么他就被称之为静态成员变量,简称为静态变量。如果是static,finnal修饰那么就称之为全局常量。
对于finnal修饰的变量,是在编译的时候就分配内存,对于其初始化,是在类加载过程中的链接环节里面的准备环节进行赋值。对于局部变量,系统不会为其分配初始值。除了final修饰的变量,其他变量是在链接阶段的准备环节进行默认赋值,在类加载过程中的初始化过程完成显式赋值。

对于类加载过程,博主会在后续更新一些jvm的知识总结,可以关注博主。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3、 关于try-catch-finanl
IDEA中可以使用快捷键Alt+Shift+Z 来对一块代码进行异常处理。
try模块用来捕获异常,catch模块处理异常,finally模块中的代码不管什么情况下都会执行(在正常捕获异常的情况下,或者没有异常的情况下)。
如果finnal中的代码不执行一定是做了一下三件事:

  • 在 try 或 finally 块中用了 System.exit(int)退出程序。但是,如果 System.exit(int) 在异常语句之后,finally 还是会被执行。
  • 线程死亡
  • cpu死亡(close CPU)

4、在多线程中,线程的sleep(),yield(),wait(),join()有什么区别?
Thread.sleep():此方法使线程进入
阻塞状态*,让cpu交出执行权,但是不会释放锁。
Thread.yield():此方法使线程进入可运行状态,让cpu交出执行权,同样不会释放锁
Thread.wait():使线程从运行状态转为阻塞状态释放线程的同步锁
Thread.join():此方法可以保证一个线程在Thread线程执行前结束(优先级大于自己的线程)。

5、推荐将数组转化为Arraylist的方式
在这里插入图片描述
图片来源:https://gitee.com/SnailClimb/JavaGuide/blob/master/docs/java/basis/Java%E5%9F%BA%E7%A1%80%E7%9F%A5%E8%AF%86%E7%96%91%E9%9A%BE%E7%82%B9.md

6 遍历集合的方式

  • 使用foreach
  • 使用迭代器
  • 使用用法如下图
  • 在这里插入图片描述

在foreach中不能使用remove来移除元素,在迭代器方式中可以。
原理:如果要进行remove操作,可以调用迭代器的 remove 方法而不是集合类的 remove 方法。因为如果列表在任何时间从结构上修改创建迭代器之后,以任何方式除非通过迭代器自身remove/add方法,迭代器都将抛出一个ConcurrentModificationException,这就是单线程状态下产生的 fail-fast 机制。

fail-fast 机制 :多个线程对 fail-fast 集合进行修改的时,可能会抛出ConcurrentModificationException,单线程下也会出现这种情况,上面已经提到过。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156826.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月8日 下午8:46
下一篇 2022年7月8日 下午9:00


相关推荐

  • JAVA解析xml的五种方式比较

    JAVA解析xml的五种方式比较1)DOM解析 DOM是html和xml的应用程序接口(API),以层次结构(类似于树型)来组织节点和信息片段,映射XML文档的结构,允许获取 和操作文档的任意部分,是W3C的官方标准 【优点】 ①允许应用程序对数据和结构做出更改。 ②访问是双向的,可以在任何时候在树中上下导航,获取和操作任意部分的数据。 【缺点】 ①通常需要加载整个XML文档来构造层次结构,消耗资源大。…

    2022年6月3日
    29
  • MySQL安装及配置详细教程

    MySQL安装及配置超详细教程首先下载安装包[网址](https://dev.mysql.com/downloads/file/?id=476233)进入页面后可以不登录。后点击底部”Nothanks,juststartmydownload.”即可开始下载。安装:直接把压缩包解压到你想安装的路径即可,相当于不用安装,可以看到我的解压路径在D盘的ROUTE文件夹下的mysq…

    2022年4月8日
    54
  • 如何查看局域网内所有的IP

    如何查看局域网内所有的IP1 先找到自己的号段打开 CMD 输入 ipconfig 找到自己的 IP 号段 192 0 168 0 2 ping 下号段内所有 IP 输入 for L iIN 1 1 254 DOping w2 n1192 168 0 i3 等执行完之后输入 arp a 结果

    2026年3月18日
    2
  • 讯飞星火怎么登录

    讯飞星火怎么登录

    2026年3月14日
    2
  • MySQL数据库:SQL优化与索引优化

    MySQL数据库:SQL优化与索引优化

    2021年4月9日
    154
  • 【python教程入门学习】PyCharm 如何使用

    【python教程入门学习】PyCharm 如何使用PyCharm 具体介绍 PyCharm 是由 JetBrains 打造的一款 PythonIDE 我们知道 VS2010 的重构插件 Resharper 就是出自 JetBrains 之手 那么 PyCharm 有什么吸引人的特点呢 首先 PyCharm 用于一般 IDE 具备的功能 比如 调试 语法高亮 Project 管理 代码跳转 智能提示 自动完成 单元测试 版本控制 另外 PyCharm 还提供了一些很好的功能用于 Django 开发 同时支持 GoogleAppEng 更酷的是 PyCharm 支持 IronPy

    2026年3月27日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号