| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Surpass Day4——Java语法基础3 -> 正文阅读 |
|
[Java知识库]Surpass Day4——Java语法基础3 |
目录 1.3 InputStreamReader和BufferedReader方法 1、用户控制端输入第一步:创建键盘扫描器对象
第二步:调用Scanner对象的next()方法开始接收用户键盘输入 敲完回车键 键入的信息会自动赋值给标识符
//标识符的命名规范:见名知意 1.1 Scanner类中的方法
1.2 System.in和System.out方法
1.3 InputStreamReader和BufferedReader方法
1.4 nextLine( )和next( )的区别nextLine( )方法返回的是Enter键之前的所有字符,它是可以得到带空格的字符串的。 next( )会自动消去有效字符前的空格,只返回输入的字符,不能得到带空格的字符串。 2、方法2.1 方法的定义,语法结构[修饰符列表] 返回值类型 方法名(形式参数列表){ 方法体; } 注意: 1)修饰符列表可选项,不是必须的,目前统一写成public static; 2)方法内的修饰符列表当中有static关键字时,调用方法:类名.方法名(实际参数列表);当方法在该类中时,"类名."可以省略; 3)方法名:首字母小写,后面每个字母大写,遵循驼峰规则; 4)建议一个源文件当中只定义一个class,比较清晰; 2.2 方法在执行过程中,JVM内存的分配和变化2.2.1 方法的定义和执行: 方法只定义,不调用是不会执行的,并且在JVM中也不会给该方法分配"运行所属"的内存空间;只有调用的时候才会分配所属的内空间; 2.2.2 JVM内存划分上主要的内存空间: 方法区内存、堆内存、栈内存(还有其他的内存空间); 2.2.3 栈数据结构 : *栈:stack,是一种数据结构; *数据结构是数据的存储形态; *常见的数据结构:数组、队列、栈、链表、二叉树、哈希表/散列表; 2.2.4 方法代码文件的存储位置,内存的分配位置: 1)方法代码片段属于.class字节码文件的一部分,字节码文件在类的加载的时候,将其放到了方法区当中。所以JVM中的三块主要的内存空间中方法区内存最先有数据。存在了代码片段; 2)代码片段虽然在方法区当中只要一份,但是可以重复调用。每一次调用这个方法的时候,需要给该方法分配独立的活动场所,在栈内存中分配【栈内存中分配方法运行的所属空间】; 3)方法在调用的瞬间会给该方法分配独立的内存空间,在栈中发生压栈动作,方法执行结束之后,给该方法分配独立的内存空间全部释放,此时发生弹栈动作。 压栈:给方法分配内存; 弹栈:释放该方法的内存空间; 4)局部变量在在“方法体”中声明,在栈中存储,运行时在栈中分配; e.g.下列程序模型就是一个压栈、弹栈的过程;
2.3 栈内存的特点1)栈帧永远指向栈顶元素 2)栈顶元素处于活跃状态,其他元素静止 3)术语: 压栈/入栈/push 弹栈/出栈/pop 4)栈数据结构存储数据的特点: 先进后出; 后进先出 3、方法执行内存分析
? ? 4、方法重载(overload)优点: 功能不相同但相似,像是在使用同一个方法一样,程序员编写代码更加方便,也不需要记忆更多的方法名,代码更美观; (javascript不支持方法重载机制)
参数的类型不同,对应调用的方法也不同。此时区分方法不再依靠方法名了,依靠的是实参的数据类型。 4.1 什么时候考虑使用方法重载?*功能相似的时候,尽可能让方法名相同; 【功能不同/不相似的时候,尽可能让方法名不同】; 4.2 构成方法重载的条件1)在同一个类中 2)方法名相同 3)参数列表不同 (数量不同、顺序不同、类型不同) 4.3 方法重载的影响因素1)方法重载和方法名+参数列表有关; 2)方法重载和返回值类型无关; 3)方法重载和修饰符列表无关; 4.4 方法重载的应用用户自定义封装一段代码,使得在使用时更加便捷快速调用;
5、方法递归缺点: 耗费栈内存,调用一次方法栈内存就会新分配一块所属的内存空间; 当没有结束条件时,栈内存溢出错误,错误无法挽回,只有一个结果,就是JVM停止工作; |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 7:52:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |