InputStreamReader is = new InputStreamReader(System.in); //new构造InputStreamReader对象
BufferedReader br = new BufferedReader(is); //拿构造的方法传到BufferedReader中
try{ //该方法中有个IOExcepiton需要捕获
String name = br.readLine();
System.out.println(“ReadTest Output:” + name);
}
catch(IOException e){
e.printStackTrace();
}
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.下列程序模型就是一个压栈、弹栈的过程;
main begin
m1 begin
m2 begin
m3 begin
m3 over
m2 over
m3 over
main over
2.3 栈内存的特点
1)栈帧永远指向栈顶元素
2)栈顶元素处于活跃状态,其他元素静止
3)术语: 压栈/入栈/push
弹栈/出栈/pop
4)栈数据结构存储数据的特点:
先进后出;
后进先出
3、方法执行内存分析
public class MethodTest01
{
public static void main(String[] args)
{
int a = 10;
int b = 20;
int restValue = sumInt(a,b);
System.out.println("retValue = "+ retvalue);
}
public ststic int sumInt(int i,int j)
{
int result = i + j;
int num = 3;
int reValue = divide (result,num);
return retValue;
}
public static int divide (int x,int y)
{
int z = x / y;
return z;
}
}
4、方法重载(overload)
优点:
功能不相同但相似,像是在使用同一个方法一样,程序员编写代码更加方便,也不需要记忆更多的方法名,代码更美观;
(javascript不支持方法重载机制)
public class MethodTest01
{
public static void main(String[] args)
{
System.out.println(sum(1,2));
System.out.println(sum(1.0,2.0));
System.out.println(sum(1L,2L));
}
public static int sum(int a,int b)
{
return a + b;
}
public static long sum(long a,long b)
{
return a + b;
}
public static double sum(double a,double b)
{
return a + b;
}
}
参数的类型不同,对应调用的方法也不同。此时区分方法不再依靠方法名了,依靠的是实参的数据类型。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

Kafka进阶篇知识点
Kafka高级篇知识点
44个Kafka知识点(基础+进阶+高级)解析如下
由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
WoPVl-1712693220687)]
Kafka高级篇知识点
[外链图片转存中…(img-RwRCWdU5-1712693220687)]
44个Kafka知识点(基础+进阶+高级)解析如下
[外链图片转存中…(img-202Jpnze-1712693220687)]
由于篇幅有限,小编已将上面介绍的**《Kafka源码解析与实战》、Kafka面试专题解析、复习学习必备44个Kafka知识点(基础+进阶+高级)都整理成册,全部都是PDF文档**
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!