JavaSE 学习链接:【狂神说Java】Java零基础学习视频通俗易懂_哔哩哔哩_bilibili
1.课程概述
计算机硬件组成: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文档的
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.
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91531 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!