JAVA初考有感

学习JAVA已经三个星期了,三个星期里,从对JAVA的最初认识到现在的JAVA考核第一阶段考过,种种体验让我对于JAVA的热爱又有所增加,计算机可真是个有趣的好”东西“。

以下是我上周考核JAVA时的个人总结:

一.大驼峰:每个单词的第一个字母都大写

小驼峰:第一个单词首字母小写,后面其他单词首字母大写


[if !supportLists]二、[endif]引用数据类型

类数组接口字符串枚举

 

关于JVM JDK 和 JRE 最详细通俗的解答

Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。

总结:Java 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。字节码和不同系统的 JVM 实现是 Java 语言“一次编译,随处可以运行”的关键所在。

JDK 和 JRE

JDK 是 Java Development Kit,它是功能齐全的 Java SDK。它拥有 JRE 所拥有的一切,还有编译器(javac)和工具(如 javadoc 和 jdb)。它能够创建和编译程序。

JRE 是 Java 运行时环境。它是运行已编译 Java 程序所需的所有内容的集合,包括 Java 虚拟机(JVM),Java 类库,java 命令和其他的一些基础构件。但是,它不能用于创建新程序。

如果你只是为了运行一下Java 程序的话,那么你只需要安装 JRE 就可以了。如果你需要进行一些 Java 编程方面的工作,那么你就需要安装 JDK 了。但是,这不是绝对的。有时,即使您不打算在计算机上进行任何 Java 开发,仍然需要安装 JDK。例如,如果要使用 JSP 部署 Web 应用程序,那么从技术上讲,您只是在应用程序服务器中运行 Java 程序。那你为什么需要 JDK 呢?因为应用程序服务器会将 JSP 转换为 Java servlet,并且需要使用 JDK 来编译 servlet。



continue、break、和return的区别是什么?

在循环结构中,当循环条件不满足或者循环次数达到要求时,循环会正常结束。但是,有时候可能需要在循环的过程中,当发生了某种条件之后,提前终止循环,这就需要用到下面几个关键词:

continue :指跳出当前的这一次循环,继续下一次循环。

break :指跳出整个循环体,继续执行循环下面的语句。

Return 用于跳出所在方法,结束该方法的运行。

return 一般有两种用法:

return; :直接使用 return 结束方法执行,用于没有返回值函数的方法

return value; :return 一个特定值,用于有返回值函数的方法

四.数组的定义

[if !supportLists]1) [endif]Int [ ] arr = new int[s];

需要手动赋值:

arr[0]=1;

arr[1]=2;

arr[3]=3;



[if !supportLists]2) [endif]int[] arr = new int[]{1,3,5,7};

[if !supportLists]3) [endif]int[] arr = {1,3,5,7};

 

组遍历方法

1.for循环

使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。

1

2

3

for(j = 0,len=arr.length; j < len; j++) {


}



2.foreach循环

遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE

1

2

3

4

5

6

//1 没有返回值

arr.forEach((item,index,array)=>{

    //执行代码

})

//参数:value数组中的当前项, index当前项的索引, array原始数组;

//数组中有几项,那么传递进去的匿名回调函数就需要执行几次;


3.map循环

有返回值,可以return出来

map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);

1

2

3

4

5

6

7

arr.map(function(value,index,array){


  //do something


  return XXX


})


1

2

3

4

5

6

var ary = [12,23,24,42,1]; 

var res = ary.map(function (item,index,ary ) { 

    return item*10; 

}) 

console.log(res);//-->[120,230,240,420,10];  原数组拷贝了一份,并进行了修改

console.log(ary);//-->[12,23,24,42,1];  原数组并未发生变化

4.for of遍历

可以正确响应break、continue和return语句

1

2

3

for (var value of my Array) {

console.log(value);

}

[if !supportLists]五.[endif]字符输入

Scanner num = new.Scanner(System.in);

String a = num.next();  或 String a = num.nextLine();

六.99乘法表(最后的输出一定要在循环内)

public classcfb {

public static voidmain(String[] args) {

int a= 1;

int b;

for(a=1;a<=9;a++) {

for(b=1;b<=a;b++) {

System.out.print(a*b+" ");

}

}

}

}


[if !supportLists]七、[endif]堆内存、栈内存

Java把内存分成两种,一种叫做栈内存,一种叫做堆内存

在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。

堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来管理。在堆中产生了一个数组或者对象后,还可以在栈中定义一个特殊的变量,这个变量的取值等于数组或者对象在堆内存中的首地址,在栈中的这个特殊的变量就变成了数组或者对象的引用变量,以后就可以在程序中使用栈内存中的引用变量来访问堆中的数组或者对象,引用变量相当于为数组或者对象起的一个别名,或者代号。

引用变量是普通变量,定义时在栈中分配内存,引用变量在程序运行到作用域外释放。而数组&对象本身在堆中分配,即使程序运行到使用new产生数组和对象的语句所在地代码块之外,数组和对象本身占用的堆内存也不会被释放,数组和对象在没有引用变量指向它的时候,才变成垃圾,不能再被使用,但是仍然占着内存,在随后的一个不确定的时间被垃圾回收器释放掉。这个也是java比较占内存的主要原因,实际上,栈中的变量指向堆内存中的变量,这就是Java中的指针!


堆主要用来存放对象的,栈主要是用来执行程序的


考核感想:这回的考核反映出了我的知识点还是处在比较浅的层面,还需要向深处学习和多练习。下一个阶段我会在学习后面知识的同时及时回顾前面的知识,也要在保证自己能学会的情况下要尽可能的提高自己的学习进度,不然落下的就太多了。希望自己能在下个阶段在学习效率和学习质量上有所突破吧。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容