JavaSE基础知识分享二:Java入门核心基础知识点汇总整理
上一篇我们聊了JavaSE最基础的入门概念,不少朋友留言说希望再梳理一下入门阶段必须啃下来的核心知识点,刚好最近也有刚入坑的萌新问我,入门到写第一个简单项目,必须搞定哪些内容,今天就把这些核心知识点整理出来,都是我当年入门踩过坑之后总结的,都是必学不亏的内容。
首先得说环境配置相关的细节,很多萌新刚入门就卡在这里,其实说穿了很简单。你装完JDK之后,必须配置环境变量,很多教程只会说要配置JAVA_HOME和Path,但不会说为什么要这么做。其实JAVA_HOME是告诉系统你的JDK装在哪个目录,后续用到的很多开发工具比如Eclipse、IDEA都会去读这个变量找JDK。而把bin目录加到Path里,是让系统能找到java.exe和javac.exe这两个命令,不然你打开 cmd 敲java命令,只会告诉你不是内部或外部命令,直接卡死在第一步。
这里还要说一个很多新手容易搞混的点:JRE和JDK到底有啥区别。简单说,如果你只是要跑别人写好的Java程序,装个JRE就够了,JRE是Java运行环境,里面包含了JVM和Java核心类库。但如果你要自己写Java代码开发,必须装JDK,JDK里面已经包含了JRE,还有编译、调试这些开发需要的工具,所以开发的时候只需要装JDK就行,不用单独再装一个JRE,别白占电脑空间。
搞定环境之后,第一个要学的肯定是基础语法。第一个核心是数据类型,Java是强类型语言,每个变量必须先声明类型才能用。数据类型分两大类,基本数据类型和引用数据类型。基本数据类型就八种,别记混了:整数型byte、short、int、long,浮点型float、double,字符型char,布尔型boolean。
这里有个新手常踩的坑,就是long类型和float类型的赋值,你写long num = 12345; 其实不会报错,但如果你的数字超过了int的范围,就必须在数字后面加L,大写L,小写l容易和数字1搞混。float同理,赋值的时候后面必须加F,因为小数默认是double类型,直接给float赋值会提示类型不匹配。
引用数据类型其实就是除了基本类型之外的,比如类、接口、数组,还有我们最常用的String,其实String就是一个类,属于引用类型,很多新手入门会搞错,把String当成基本类型,这点一定要记清楚。
接下来就是运算符,运算符这块其实不难,就是要记几个容易错的点。比如==和equals的区别,这个真是笔试面试必考,入门的时候就要搞懂。==比较的是值,对于基本类型来说,比较的就是字面值是不是一样,对于引用类型来说,比较的是对象在内存中的地址是不是同一个。而equals默认也是比较地址,但String这些类已经重写了equals方法,用来比较两个字符串的内容是不是一样。所以你要比较两个字符串内容是不是相等,一定要用equals,别用==,不然很容易出问题。
还有自增自减运算符,++在前和++在后的区别,++在前是先自增再用变量,++在后是先用变量再自增,这块多写两个小例子跑一遍就能明白,光看记不住,一定要动手跑代码。
然后是流程控制语句,这块其实和大部分编程语言都差不多,就是分支和循环。分支就是if-else和switch,if-else不用说,大家都能理解,switch要注意,Java在JDK1.7之后才支持用String做判断条件,老版本是不行的,现在我们用的新版本基本都支持,但要知道这个点。还有别忘了每个case后面加break,不然会一直往下执行,这也是新手常犯的错误。
循环就是for、while、do-while,for循环适合用在知道循环次数的场景,while适合不知道循环次数的场景,do-while不管条件满不满足,都会先执行一次,这点要分清楚。还有就是break和continue的区别,break是直接跳出整个循环,continue是跳过本次循环,直接进下一次,别搞混了。
学完流程控制,就该接触数组了。数组就是用来存同类型数据的容器,入门阶段常用的是一维数组,二维数组简单了解用法就行。数组定义有两种方式,比如int[] arr = new int[5]; 或者int[] arr = {1,2,3,4,5};,两种写法都对,第一种是指定长度,默认值都是0,第二种是直接初始化赋值。
数组这里最常见的错误就是数组下标越界,Java数组的下标是从0开始的,所以长度为n的数组,下标最大是n-1,如果你访问arr[n],直接就抛异常了,写的时候一定要注意这点。
再往下就是面向对象了,这是Java的核心,也是入门最难啃的一块。很多新手刚接触面向对象就懵了,其实说简单点,面向对象就是把现实中的东西抽象成类,你要描述一只猫,就做一个Cat类,里面有猫的属性比如名字、颜色,还有猫的行为比如叫、跑,这些就是类里面的方法。
面向对象有三个核心特性:封装、继承、多态。封装简单说就是把属性藏起来,不让外面直接改,通过public的方法来操作属性,这样能保证数据安全,比如你把age属性设成private,外面不能直接改,只能通过setAge方法,你在方法里加个判断,年龄不能是负数,就避免了不合理的数据。
继承就是子类继承父类,就能拿到父类的属性和方法,不用再重新写一遍,提高代码复用。Java里面只能单继承,就是一个类只能有一个直接父类,这点和C++不一样,要记住。继承之后子类可以重写父类的方法,就是同一个方法,不同子类有不同的实现,这就引出了多态。
多态其实就是同一个调用,不同对象出来不同结果。要实现多态需要三个条件:继承、重写、父类引用指向子类对象。比如有个父类叫Animal,里面有个eat方法,子类Cat重写eat,子类Dog也重写eat,你写Animal a = new Cat(); 调用a.eat() 就会执行Cat的eat方法,换成new Dog()就执行Dog的,这就是多态,多态能让代码更灵活,方便后续扩展。
这里还要说一下构造方法,每个类都有构造方法,如果你没写,编译器会自动给你加一个空参数的构造方法,如果你写了自己的构造方法,编译器就不会再给你加了,这时候你要调用空构造就会报错,很多新手在这里踩坑,一定要记得。
接下来就是常用的API了,入门阶段最先用的就是String,String里面的常用方法一定要记牢,比如length()拿长度,charAt()拿指定位置的字符,substring()截取字符串,equals()比较内容,split()分割字符串,这些都是写代码天天用的。还有StringBuilder和StringBuffer,String是不可变的,每次修改都会创建新对象,频繁修改字符串用StringBuilder效率更高,StringBuffer是线程安全的,效率比StringBuilder低一点,单线程环境下用StringBuilder就行。
然后就是集合框架,入门阶段先掌握ArrayList和HashMap就行,ArrayList相当于动态数组,长度可以自动变,比普通数组用起来方便,存数据取数据都很简单。HashMap是存键值对的,根据键拿值,键不能重复,日常开发用的非常多。
最后说个很重要的点,就是异常,入门要知道Java的异常分为检查异常和运行时异常,我们写代码的时候经常会碰到异常,要知道怎么用try-catch捕获处理,或者throws抛出去,不用学太深入,知道基本用法就行,后面再慢慢深入。
其实入门阶段把这些知识点搞定,就已经能写一些简单的小项目了,比如学生管理系统之类的,不用一开始就去啃各种高大上的框架,把这些基础打扎实,后面学什么都快,基础不牢后面真的越学越懵,所以千万别着急跳步,一步一步把这些知识点啃透,动手多写代码,比看十遍教程都有用。
JavaSE基础知识,Java入门,Java核心基础,Java知识点汇总,Java基础语法,Java面向对象,Java数据类型,Java环境配置,Java面向对象特性,Java常用API
[Q]:JDK和JRE有什么区别,开发Java需要都装吗?
[A]:JRE是Java运行环境,仅用来运行已开发好的Java程序;JDK是Java开发工具包,包含JRE,还提供编译、调试等开发工具,开发Java只需要安装JDK即可,不需要单独安装JRE。
[Q]:Java的基本数据类型有几种,分别是什么?
[A]:Java的基本数据类型一共有8种,分别是整数型byte、short、int、long,浮点型float、double,字符型char,布尔型boolean。
[Q]:==和equals的区别是什么?
[A]:==比较的是值,对基本类型比较字面值,对引用类型比较对象的内存地址;equals默认也是比较地址,但String等类重写了equals方法,用来比较两个对象的内容是否一致,比较字符串内容要使用equals。
[Q]:Java中数组的下标是从0开始还是从1开始?
[A]:Java数组的下标从0开始,长度为n的数组,最大可用下标是n-1,访问超出范围会抛出数组下标越界异常。
[Q]:面向对象的三个核心特性是什么?
[A]:面向对象的三个核心特性分别是封装、继承、多态,封装隐藏数据保证安全,继承复用父类代码,多态让代码更灵活易扩展。
[Q]:Java支持多继承吗?
[A]:Java中类是不支持多继承的,一个类只能有一个直接父类,只支持单继承。
[Q]:String属于基本数据类型吗?
[A]:String不属于基本数据类型,它是Java中的一个类,属于引用数据类型。
[Q]:频繁修改字符串为什么推荐用StringBuilder而不是String?
[A]:String是不可变的,每次修改都会创建新的String对象,效率低;StringBuilder是可变的,修改不会创建新对象,性能更高,更适合频繁修改字符串的场景。
首先得说环境配置相关的细节,很多萌新刚入门就卡在这里,其实说穿了很简单。你装完JDK之后,必须配置环境变量,很多教程只会说要配置JAVA_HOME和Path,但不会说为什么要这么做。其实JAVA_HOME是告诉系统你的JDK装在哪个目录,后续用到的很多开发工具比如Eclipse、IDEA都会去读这个变量找JDK。而把bin目录加到Path里,是让系统能找到java.exe和javac.exe这两个命令,不然你打开 cmd 敲java命令,只会告诉你不是内部或外部命令,直接卡死在第一步。
这里还要说一个很多新手容易搞混的点:JRE和JDK到底有啥区别。简单说,如果你只是要跑别人写好的Java程序,装个JRE就够了,JRE是Java运行环境,里面包含了JVM和Java核心类库。但如果你要自己写Java代码开发,必须装JDK,JDK里面已经包含了JRE,还有编译、调试这些开发需要的工具,所以开发的时候只需要装JDK就行,不用单独再装一个JRE,别白占电脑空间。
搞定环境之后,第一个要学的肯定是基础语法。第一个核心是数据类型,Java是强类型语言,每个变量必须先声明类型才能用。数据类型分两大类,基本数据类型和引用数据类型。基本数据类型就八种,别记混了:整数型byte、short、int、long,浮点型float、double,字符型char,布尔型boolean。
这里有个新手常踩的坑,就是long类型和float类型的赋值,你写long num = 12345; 其实不会报错,但如果你的数字超过了int的范围,就必须在数字后面加L,大写L,小写l容易和数字1搞混。float同理,赋值的时候后面必须加F,因为小数默认是double类型,直接给float赋值会提示类型不匹配。
引用数据类型其实就是除了基本类型之外的,比如类、接口、数组,还有我们最常用的String,其实String就是一个类,属于引用类型,很多新手入门会搞错,把String当成基本类型,这点一定要记清楚。
接下来就是运算符,运算符这块其实不难,就是要记几个容易错的点。比如==和equals的区别,这个真是笔试面试必考,入门的时候就要搞懂。==比较的是值,对于基本类型来说,比较的就是字面值是不是一样,对于引用类型来说,比较的是对象在内存中的地址是不是同一个。而equals默认也是比较地址,但String这些类已经重写了equals方法,用来比较两个字符串的内容是不是一样。所以你要比较两个字符串内容是不是相等,一定要用equals,别用==,不然很容易出问题。
还有自增自减运算符,++在前和++在后的区别,++在前是先自增再用变量,++在后是先用变量再自增,这块多写两个小例子跑一遍就能明白,光看记不住,一定要动手跑代码。
然后是流程控制语句,这块其实和大部分编程语言都差不多,就是分支和循环。分支就是if-else和switch,if-else不用说,大家都能理解,switch要注意,Java在JDK1.7之后才支持用String做判断条件,老版本是不行的,现在我们用的新版本基本都支持,但要知道这个点。还有别忘了每个case后面加break,不然会一直往下执行,这也是新手常犯的错误。
循环就是for、while、do-while,for循环适合用在知道循环次数的场景,while适合不知道循环次数的场景,do-while不管条件满不满足,都会先执行一次,这点要分清楚。还有就是break和continue的区别,break是直接跳出整个循环,continue是跳过本次循环,直接进下一次,别搞混了。
学完流程控制,就该接触数组了。数组就是用来存同类型数据的容器,入门阶段常用的是一维数组,二维数组简单了解用法就行。数组定义有两种方式,比如int[] arr = new int[5]; 或者int[] arr = {1,2,3,4,5};,两种写法都对,第一种是指定长度,默认值都是0,第二种是直接初始化赋值。
数组这里最常见的错误就是数组下标越界,Java数组的下标是从0开始的,所以长度为n的数组,下标最大是n-1,如果你访问arr[n],直接就抛异常了,写的时候一定要注意这点。
再往下就是面向对象了,这是Java的核心,也是入门最难啃的一块。很多新手刚接触面向对象就懵了,其实说简单点,面向对象就是把现实中的东西抽象成类,你要描述一只猫,就做一个Cat类,里面有猫的属性比如名字、颜色,还有猫的行为比如叫、跑,这些就是类里面的方法。
面向对象有三个核心特性:封装、继承、多态。封装简单说就是把属性藏起来,不让外面直接改,通过public的方法来操作属性,这样能保证数据安全,比如你把age属性设成private,外面不能直接改,只能通过setAge方法,你在方法里加个判断,年龄不能是负数,就避免了不合理的数据。
继承就是子类继承父类,就能拿到父类的属性和方法,不用再重新写一遍,提高代码复用。Java里面只能单继承,就是一个类只能有一个直接父类,这点和C++不一样,要记住。继承之后子类可以重写父类的方法,就是同一个方法,不同子类有不同的实现,这就引出了多态。
多态其实就是同一个调用,不同对象出来不同结果。要实现多态需要三个条件:继承、重写、父类引用指向子类对象。比如有个父类叫Animal,里面有个eat方法,子类Cat重写eat,子类Dog也重写eat,你写Animal a = new Cat(); 调用a.eat() 就会执行Cat的eat方法,换成new Dog()就执行Dog的,这就是多态,多态能让代码更灵活,方便后续扩展。
这里还要说一下构造方法,每个类都有构造方法,如果你没写,编译器会自动给你加一个空参数的构造方法,如果你写了自己的构造方法,编译器就不会再给你加了,这时候你要调用空构造就会报错,很多新手在这里踩坑,一定要记得。
接下来就是常用的API了,入门阶段最先用的就是String,String里面的常用方法一定要记牢,比如length()拿长度,charAt()拿指定位置的字符,substring()截取字符串,equals()比较内容,split()分割字符串,这些都是写代码天天用的。还有StringBuilder和StringBuffer,String是不可变的,每次修改都会创建新对象,频繁修改字符串用StringBuilder效率更高,StringBuffer是线程安全的,效率比StringBuilder低一点,单线程环境下用StringBuilder就行。
然后就是集合框架,入门阶段先掌握ArrayList和HashMap就行,ArrayList相当于动态数组,长度可以自动变,比普通数组用起来方便,存数据取数据都很简单。HashMap是存键值对的,根据键拿值,键不能重复,日常开发用的非常多。
最后说个很重要的点,就是异常,入门要知道Java的异常分为检查异常和运行时异常,我们写代码的时候经常会碰到异常,要知道怎么用try-catch捕获处理,或者throws抛出去,不用学太深入,知道基本用法就行,后面再慢慢深入。
其实入门阶段把这些知识点搞定,就已经能写一些简单的小项目了,比如学生管理系统之类的,不用一开始就去啃各种高大上的框架,把这些基础打扎实,后面学什么都快,基础不牢后面真的越学越懵,所以千万别着急跳步,一步一步把这些知识点啃透,动手多写代码,比看十遍教程都有用。
JavaSE基础知识,Java入门,Java核心基础,Java知识点汇总,Java基础语法,Java面向对象,Java数据类型,Java环境配置,Java面向对象特性,Java常用API
[Q]:JDK和JRE有什么区别,开发Java需要都装吗?
[A]:JRE是Java运行环境,仅用来运行已开发好的Java程序;JDK是Java开发工具包,包含JRE,还提供编译、调试等开发工具,开发Java只需要安装JDK即可,不需要单独安装JRE。
[Q]:Java的基本数据类型有几种,分别是什么?
[A]:Java的基本数据类型一共有8种,分别是整数型byte、short、int、long,浮点型float、double,字符型char,布尔型boolean。
[Q]:==和equals的区别是什么?
[A]:==比较的是值,对基本类型比较字面值,对引用类型比较对象的内存地址;equals默认也是比较地址,但String等类重写了equals方法,用来比较两个对象的内容是否一致,比较字符串内容要使用equals。
[Q]:Java中数组的下标是从0开始还是从1开始?
[A]:Java数组的下标从0开始,长度为n的数组,最大可用下标是n-1,访问超出范围会抛出数组下标越界异常。
[Q]:面向对象的三个核心特性是什么?
[A]:面向对象的三个核心特性分别是封装、继承、多态,封装隐藏数据保证安全,继承复用父类代码,多态让代码更灵活易扩展。
[Q]:Java支持多继承吗?
[A]:Java中类是不支持多继承的,一个类只能有一个直接父类,只支持单继承。
[Q]:String属于基本数据类型吗?
[A]:String不属于基本数据类型,它是Java中的一个类,属于引用数据类型。
[Q]:频繁修改字符串为什么推荐用StringBuilder而不是String?
[A]:String是不可变的,每次修改都会创建新的String对象,效率低;StringBuilder是可变的,修改不会创建新对象,性能更高,更适合频繁修改字符串的场景。
评论 (0)
