狂神说学习JavaSE

JavaSE 学习链接:【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili

1.课程概述

 

2.java:javaSE,数据库,前端,JavaWeb,SSM框架,Linux,SpringBoot,SpringCloud,Hadoop 3.搭建网站:WORDP,typecho, 首页-KuangStudy 4.MarkDown语法 文本编辑器:Typora 5.计算机:能够按照程序运行、自动、高速处理海量数据的现代化智能电子设备 6.计算机硬件:一些物理装置按系统结构的要求构成一个有机整体为计算机软件运行提供物质基础

计算机硬件组成:CPU,主板,内存,电源,主机箱,硬盘,显卡,键盘,鼠标,显示器等

7.冯.诺依曼

8.计算机软件:

计算机软件可以使计算机按照事先预定好的顺序完成特定的功能

计算机软件按照其功能划分为系统软件与应用软件

人机交互(图形化界面,命令行)

9.电脑常用快捷键:

键盘功能键:Tab,Shift,Ctri,Alt空格,Enter,Window,↑↓←→

键盘快捷键:全选,复制,粘贴,撤销,保存,关闭窗口,运行,永久删除..

10.explorer,ctrl+shift+esc任务管理器,win+tab切换

11.常见DOS命令:

切换目录,开启软件,创建目录文件,删除目录文件,查看ip,ping

12.shift+鼠标右键 打开cmd

13.dir查看当前目录下的所有文件,cd /d

清理屏幕(cls)clear screen,calc,mspaint,notepad,md,rd

14.摩尔定律

15.面向过程,面向对象,相辅相成,java,c++--

16.计算机语言发展史

c语言:1972

贴近硬件,运行极快,效率极高

操作系统,编译器,数据库,网络系统等

指针和内存管理

c++:1982

面向对象

兼容c

图形领域,游戏等

java:

语法有点像c,没有指针,没有内存管理,真正的可以执行,编写一次,到处运行,面向对象,类型安全,高质量的类库

17.图形界面的程序(Applet)

Java2 标准版(J2SE):去占领桌面

Java2 移动版(J2ME):去占领手机

Java2 企业版(J2EE):去占领服务器

18.高可用,高性能,高并发

19.Java发展法:

基于Java开发了居多的平台,系统,工具: 构建工具:Ant,Maven,Jekins

应用服务器:Tomcat,Jetty,Jboss,Websphere,weblogic

Web开发:Struts,Spring,Hibernate,myBatis

开发工具:Eclipse,Netbean,Intellij,idea,Jbuilder

Hadoop(大数据领域) Android(手机端)

20.Java特性和优势:

简单性,面向对象(万物皆对象),可抑制行,高性能,分布式,动态性(反射机制),多线程(听歌打游戏),安全性,健壮性,异常机制

21.Java三大版本:

write once run anywhere

JavaSE:标准版(桌面程序,控制台开发)

JavaME:嵌入式开发(手机,小家电)

JavaEE:E企业级开发(web端,服务器开发)

22.异常,突发情况,勇于探索,不要太较真

23.JDK,JRE,JVM

24.Java程序运行机制

编译型,解释型,字节码class文件

25.IDE集成开发环境

26./** */文档注释

27.标识符:Java所有的组成部分都需要名字。类、变量名以及方法名都被称为标识符

关键字:

 

28.强类型语言:要求变量的使用要严格符合规定,所有变量都必须先定义后才能使用

安全性高,速度慢

基本类型,引用类型(类,接口,数组)

29.字节:

位(bit):是计算机内部数据储存的最小单位,11001100是一个八位二进制数

字节(byte):是计算机中数据处理的基本单位,习惯上用大写B来表示

1B(字节)=8(位)

字符:是指计算机中使用的字母、数字。字和符号

30.二进制0b,八进制0,十六进制0x,

float 有限 离散 舍入误差 大约 接近但不等于

BigDecimal 数学工具类 银行业务

31.所有字符本质还是数字

编码 Unicode 2字节 0 - 65536 最早Excel 2 16 =65536,97a 65A

32.类型转换,内存溢出

byte,short,char→int→long→float→double

运算中,不同类型的数据先转化为同一类型,然后进行运算

*强制转换 (类型)变量名 高--低

自动转换 低--高,cast转换

33.JDK7新特性,数字之间可以用下划线分割

34.修饰符,不存在先后顺序,

35.逻辑运算,短路运算

36.位运算符 右移>>(*2) 2>>3 16 效率高 和底层打交道

37.“”+A+b链接,在后则计算

38.包机制:一般利用公司域名倒置作为包名,package,impoet

39.*通配符

40.阿里巴巴开发手册,jdk帮助文档

41.JavaDoc :

JavaDoc帮助命令是用来生成自己API文档的

参数信息@author作者名,@version,@since指明需要最早使用的jdk版本,@param参数名,@return返回值情况,@throws异常抛出情况

42.javadoc -encording UTF-8 charset UTF-8

43.idea生成javadoc文档

44.Scanner对象:

java.util.Scanner是Java5的新特性,我们可以通过Scanner类来获取用户的输入

基本语法:Scanner s =new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前一般使用hasNext()与hasNextLine()判断是否还有输入的数据

45.scanner.close();

凡事属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉

46.next(),不能得到带有空格的字符串

nextLine(),输入回车之前的所有字符

47.顺序结构:是任何一个算法都离不开的一种基本算法结构

48.equals,判断是否相等

49.java--class(字节码文件) 反编译(IDEA),hashCode

50.while循环:

大多数情况会让循环停止下来,需要一个让表达式失效的方式来结束循环

少部分情况需要循环一直执行,比如服务器的请求响应监听等

循环条件一直为true就会造成无限循环(死循环),正常的业务编程中应该尽量避免死循环,会影响程序性能或者造成程序卡死崩溃

51.for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构

52.System.out.println();不换行

53.不是成为敲代码的人,而是解决问题的人

54.Java5引入了一种主要用于数组或集合的增强型for循环

for(声明语句:表达式){//代码句子} 遍历数组的元素

55.类+对象+方法,System.out.println()

56.Java方法是语句的集合,它们在一起执行一个功能

方法是解决一类问题的步骤的有序组合,方法包含于类或对象中,方法在程序中被创建,在其他地方被引用

57.设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展

58.值传递,拷贝

59.方法的重载:

方法重载的规则:

*方法名称必须相同

*参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)

*方法的返回类型可以相同也可以不相同

*仅仅返回类型不同不足以成为方法的重载

实践理论:

*方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。

60.java.lang.ArrayIndexOutOfBoundsException:1,下标越界

61.Java内存: 堆:存放new的对象和数组,可以被所有的线性共享,不会存放别的对象引用

栈:存放基本变量类型(会包含这个基本类型的具体数值),引用对象的变量(会存放这个引用在堆里面的具体地址)

方法区:可以被所有的线程共享,包含了所有的class和static变量

62.数组的默认初始化: 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化

63.数组的四个基本特点:

其长度是确定的。数组一旦被创建,它的大小就是不可以改变的

其元素必须是相同类型,不允许出现混合类型

数组中的元素可以是任何数据类型,包括基本类型和引用类型

数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量,

数组本身就是对象,Java中对象是在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的

64.冒泡排序:冒泡排序无疑是最为出名的排序算法之一,总共有八大排序

两层循环,外层冒泡轮数,里层依次比较

65.面向对象&面向过程

面向对象思想:

步骤清晰简单 ,第一步做什么,第二步做什么..

面向过程适合处理一些较为简单的问题

面向对象思想:

物以类聚,分类的思维模式,思考问题首先会理解问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索。

面向对象适合处理复杂的问题,适合处理需要多人写作的问题!

66.对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理

67.面向对象:

面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装))

三大特性:封装,继承,多态

从认识论角度考虑是先有对象后先有类。对象,是具体的事物。类,是抽象的,是对对象的抽象

从代码运行角度考虑是先有类后有对象。类是对象的模板。

68.return,结束方法,返回一个结果

69.public static ...和类一起加载的

public...类实例化 之后才存在

70.值传递

71.引用传递:对象,本质还是值传递

72.类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不代表某一个具体的事物

对象是抽象概念的具体实例

73.使用new关键字,本质是在调用构造器

74.堆和栈:

 

75.封装:

我们程序设计要追求“高内聚,低耦合”,高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合,仅暴露少量的方法给外部使用

封装(数据的隐藏)

通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏

属性私有。get/set

76.封装优点:提高程序的安全性,保护数据,隐藏代码的实现细节,统一接口,系统可维护增加了

77.继承:继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模

extends的意思是“扩展”,子类是父类的扩展

JAVA中类只有单继承,没有多继承

继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖、组合、聚合等

继承关系的两个类,一个为子类(派生类),一个为父类(基类)

78.在Java中,所有的类,直接或间接继承Object

79.调用父类的构造器,必须在子类构造器的第一行

80.super注意点:

一.super调用父类的构造方法,必须在构造方法的第一个

二.super必须只能出现在子类的方法或者构造方法中

三.super和this不能同时调用构造方法

Vs this:

代表的对象不同:

this:本身调用者这个对象

super:代表父类对象的应用

前提:

this:没继承也可以使用

super:只能在继承条件才可以使用

构造方法

this():本类的构造

super():父类的构造

81.重写都是方法的重写,和属性无关

82.方法的调用只和左边,定义的数据类型有关

83.重写: 需要有继承关系,子类可以重写父类的方法: ①,方法名必须相同

②,参数列表必须相同

③,修饰符,范围可以扩大但不能缩小 public>protected>default>private

④,抛出的异常,范围可以被缩小 classNotFoundException→Exception

重写,子类的方法和父类必要一致,方法体不同

。为什么需要重写:父类的功能,子类不一定需要,或者不一定满足 override alt+insert

84.多态,可扩展性

一个对象的实际类型是确定的,可以指向的引用类型就不确定了:父类的引用指向子类

对象能执行哪些方法,主要看对象左边的类型,和右边关系不大

85.多态注意事项:

多态是方法的多态,属性没有多态

父类和子类有联系 类型转换异常 ClassCastException

存在条件 继承关系,方法需要重写,父类引用指向子类对象 father f1 = new Son

86.没办法重写,实现不了多态:static方法,属于类,它不属于实例,final常量,private方法

87.多态:即同一方法可以根据发送对象的不同而采用多种不同的行为方式

88.抽象:编程对象 ,接口

89.把子类转换为父类,向上转型

把父类转换为子类,向下转型,强制转换

90.抽象类:

不能new这个抽象类,只能靠子类实现它:约束

抽象类中可以写普通的方法

抽象方法必须在抽象类中

抽象的抽象:约束~,抽象出来,提高开发效率

91.接口:约束和实现分离

92.接口的本质是契约,23种设计模型

93.接口:

约束

定义一些方法,让不同的人实现

public abstract

public static final

接口不能被实例化,接口中没有构造方法

implements可以实现多个接口

必须要重写接口中的方法

94.没有名字初始化类,不用把实例保存到变量中

95.异常:检查性异常,运行时异常,错误ERROR

96.Error

Error类对象由Java虚拟机生成并抛出,大多数错误与代码编写者所执行的操作无关

Java虚拟机运行错误,当JVM不再有继续执行操作所需的内存资源时,讲出现OutOFMemoryError.这些异常发生时,Java虚拟机一般会选择线程终止

还有发生在虚拟机试图执行应用时,如类定义错误,链接错误。这些错误是不可查的,因为它们在应用程序的控制和处理能力之外,而且绝大多数是程序运行时不允许出现的状况

97.异常,finally 善后 IO资源关闭

98.假设要捕获多个异常:从小到大, ctrl+alt+t

99.实际应用中的经验总结:

处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理

在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常

对于不确定的代码,也可以加上try-catch,处理潜在的异常

尽量去处理异常,切忌只是简单地调用pringStackTrance()去打印输出

具体如何处理异常,要根据不同的业务需求和异常类型去决定

尽量添加finally语句块去释放占用的资源

100.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值