Java思维导图

学习方法:

  1. 针对性学习
  2. 引导式学习
  3. 对比式学习
  4. 总结式学习

Java简介: 简单性,面向对象,分布式,健壮性,安全性,平台独立与可移植性,多线程,多态性等.

Java三大体系:JavaSE,JavaEE,JavaME

平台标准版,平台企业版,微星版.

Java开发环境配置:下载jdk,配置环境变量,JAVA_HOME设置,安装java开发工具,CLASSPATH设置,PATH设置..

java基础语法:

对象,就是类的一个实例,有行为和状态

类,就是模板,用来描述一个类对象的行为和状态

方法,就是行为

实例变量,就是每个对象都有一些独特的实例变量,对象的状态由这些实例变量的值决定

基础语法:

Java中大小写敏感,就是说Hellohello是不一样的额.

类名,类名的首字母应该是大写

方法名,所有方法名都应该是以小写字母开头

源文件名,源文件名必须和类名相同

主方法入口,所有程序通过publlic static void main(String []args)方法执行

标识符:类名,变量名以及方法名都被称为标识符

标识符以字母,美元符号,或下划线

关键字不能用作标识符

标识符是大小写敏感的

修饰符分为访问控制修饰符和非访问控制修饰符

一,访问,default public protected private

二,非访问,final abstract strictfp

变量:局部变量, 类变量(静态变量), 成员变量(非静态变量)

数组,数组就是存储在堆上的对象,可以保持多个同类型的变量

枚举概念为,枚举限制变量只能是预先设定好的值,枚举是可以用于单独声明或者声明在类里面,方法,变量,构造函数也可以在枚举中定义.

java中有大概50多个保留字吧,关键字是不能用于常量变量,和任何标识符的名称.

继承是在java中,一个类可以由其他类派生的,被继承的类为超类,派生的类为子类,利用了继承的方法,可以重用已经存在类的方法和属性

接口,是作为对象间相互通信的协议,接口是定义要用到的方法,方法的实现要在派生类

学习java很多吧,有:

  1. 面向对象
  2. 多态
  3. 继承
  4. 封装
  5. 抽象
  6. 重载
  7. 方法
  8. 实例
  9. 对象

面向对象:

是描述对象的行为和状态

对象是类的一个实例,有行为和状态

构造方法,新建对象时,执行的一个特殊方法,创建一个对象的时候,至少要调用一个构造方法,构造方法的名称要和类同名,一个类可以有多个构造方法.

this是用来引用当前对象,构造方法之间的调用.

方法的重载是同名不同参.

final是用来修饰方法,变量,和类的,是最终不可以变的.

static静态, 静态变量是类, 又叫类变量, 非静态成员属于实例, 静态成员是通过类名直接调用, 而被static修饰的成员将最优先加载到内存里.

接口, interface替代class , implements替代extends

接口中只能定义,公共的常量,抽象方法,内部类,内部接口.

说到抽象类,抽象类的作用是为子类提供通用代码,抽象类不能创建对象,在抽象类中,不一定有抽象方法,但是有抽象方法的类,一定是抽象类.

说到内部类,内部类是定义在类的内部,方法的内部或者是局部代码中的类,就是叫内部类.

内部类: 静态内部类, 非静态内部类, 局部内部类, 成员内部类, 匿名内部类.

面向对象的三大特性

  1. 继承
  2. 多态
  3. 封装

继承的作用是代码重复使用,单继承,一个类只能有一个父类,一个类,可以有多个子类.在java中构造方法不继承,静态成员不继承,没有访问权限的成员不继承.

多态,继承是多态的基础,没有基础就没有多态,继承属于多态的一种,子类重写父类的方法,父类引用变量指向子类对象.

子类转父类,将一个父类的引用指向一个子类的对象,称为向上转型,自动类型转换.

封装,封装的好处是用来隐藏类的实现,修改属性的可见性来限制属性的访问.

Java中的程序

声明对象,有对象名称和对象类型,使用关键字new来创建对象,初始化对象,如Person person = new Person("dashu"),通过创建对象进行访问成员变量和方法,声明和实例化对象,访问其中的变量和方法.

java中,一个源文件只能有一个public类,可以有多个非public类,源文件的名称和类名要一样.java包,包是用来对类和接口进行分类的.

数据类型

八种基本类型,六种数字类型,四种是整数型,两种是浮点型, 另外的是字符类型, 还有布尔型.

类型: byte,short,int,long, float,double, boolean,char

引用数据类型,在java中有对象和数组都是引用数据类型,所有引用类型的默认值为null.

基本数据类型

自动类型转换,低到高,byte,short,char->int->long->float->double.

强制类型转换,高到底.

转换:\n换行,\r回车,\b退格,\s空格等.

修饰符

修饰符是用来定义类,方法或是变量,java中支持4种不同的访问权限,public可以用于当前类,同一包内,子孙类,其他包,protected可以用于当前类,同一包内,和子孙类,default可以用于当前类,同一包类,private只能用于当前类.

如果父类中声明public的方法在子类中也必须是public,如果父类中protected的方法在子类中声明为protected,也可以为public,不能为private.声明为private的方法,不能被继承.

非访问,static修饰符,可以用来创建类方法和类变量.final修饰符是用来修饰类,方法,变量.final修饰的类不能被修饰,修饰的方法不能被继承类重新定义.修饰的变量为常量是不可以被修改的.abstract用于创建抽象类和方法.synchronizedvolatile用于线程.

运算符要点

i++是运算完加1,++1先加1,后运算.

运算符:

&都是1,结果为1,否则为0;

|都是0,结果为0,否则为1;

^相同的,结果为0,否则为1;

~按位补运算符翻转操作数的每一位,即0变成1,1变成了0.

循环结构

// do...while循环和while循环相似,但是do...while循环至少会执行一次
while(){
} do{
}while(); for(初始化;布尔表达式;更新){
} for(声明语句;表达式){
} if语句
if...else语句
if...else if...else语句
switch语句
switch语句中的变量类型为:
byte, short, int, char

封装,拆箱,抽象类,Math类,String

StringBuffer和StringBuilder
StringBuffer的方法是线程安全的
StringBuilder相比较StringBuffer有优势
Integer x = 2;
x = x + 2;
抽象类Number
Integer,Long,Byte,Double,Float,Short
Math类
xxxValue(),valueOf(),parseInt(),abs(),random()
int compareTo() 进行比较两个字符串
String concat() 将字符串连接到此字符串的结尾
boolean equals() 将字符串与指定的对象比较
int length()
String[] split()
byte[] getBytes()
int hashCode()
int indexOf()
String substring()
String trim()

数组

声明数组变量,创建数组,多维数组

arr[] arr = {1,3,4,5,6,7,13};
for(int array : arr){
}

时间

DateSimpleDateFormat

String toString()
long getTime()
int compareTo()
boolean before()
boolean after() Date datenow = new Date();
SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd hh:mm:ss");
System.out.println(ft.format(datenow));

流,文件,io

FileReader->InputStreamReader
FileWriter->OutputStreamReader
// 创建目录
mkdir()创建一个文件夹
mkdirs()
// 读取目录
isDirectory()判断是否是目录
list()列表文件
delete()方法

异常处理

Throwable->Error
Throwable->Exception
try/catch
throws/throw
finally

集合框架

接口 Collection Map
List 为采用线性列表的存储方式,长度可动态改变
Map 为键-值对的存储方式,长度可动态改变
具体类
List Map
List -> ArrayList LinkedList
Map -> HashMap
算法
Collections 提供了对集合实现遍历等
Collection接口是最基本的容器接口
List接口 Set接口
List ->
LinkedList -> 底层数据结构为链表结构,查询慢,增删快
ArrayList -> 底层数据结构是数组结构,查询快,增删慢,线程不同步
Vector 底层是数组数据结构,线程同步,增删改查都慢的
Set -> 不允许放入重复的元素,最多只能保护一个null
HashSet类,底层基于HashMap,不保证Set的迭代顺序和永久不变
Map
HashMap TreeMap

泛型

public class Test<T>()
Test<Object> t = new Test<Object>();
泛型类:
public class Box<T>{
private T t;
public void add(T t){
this.t = t;
}
public T get() {
return t;
}
}

类型通配符:值使用?代替具体的类型参数

多线程

多线程就是多个线程进行?,线程是一种轻量级的进行,进程具有独立性,动态性,并发性,进程的独立性在于拥有独立资源,独立的地址,无授权其他进程无法访问.多线程代表性,继承Thread和实现Runnable接口.

线程建立,new一个Thread,然后就绪执行start方法,开始运行,执行run方法,然后阻塞,接着死亡.run方法进行结束,调用stop方法.

开始学习框架思路:

要学习框架的理念,目的,背景,优势,功能,特点,看书,框架原理,做一些demo等.

学习开源项目

学习开源项目,要学什么,要掌握什么,框架用法,功能一般有前台和后台.需要掌握的是前端和后端.这个项目的结果,设计思想,有什么是我们要学习的,遇到的一些问题去如何实现.

实践学习

javase基础,掌握语法基础,io流,多线程,反射,sql继承,增删改查,和学习表关联查询,前端学习,html``css,jsp学习,框架学习spring,springmvc,springBoot,mybatis等.

如果看了觉得不错

点赞!转发!

达叔小生:往后余生,唯独有你

You and me, we are family !

90后帅气小伙,良好的开发习惯;独立思考的能力;主动并且善于沟通

简书博客: 达叔小生

https://www.jianshu.com/u/c785ece603d1

结语

  • 下面我将继续对 其他知识 深入讲解 ,有兴趣可以继续关注
  • 小礼物走一走 or 点赞

Java思维理清思路的更多相关文章

  1. Java编程配置思路详解

    Java编程配置思路详解 SpringBoot虽然提供了很多优秀的starter帮助我们快速开发,可实际生产环境的特殊性,我们依然需要对默认整合配置做自定义操作,提高程序的可控性,虽然你配的不一定比官 ...

  2. 学习seo技术要不断地扩大思维和思路

    http://www.wocaoseo.com/thread-148-1-1.html        目前学习seo技术的人员是越来越多了,通过查看seo这个词的指数,就能发现一些状况,从最初的每天3 ...

  3. PAT 甲级 1017 Queueing at Bank (25 分)(模拟题,有点思维小技巧,第二次做才理清思路)

    1017 Queueing at Bank (25 分)   Suppose a bank has K windows open for service. There is a yellow line ...

  4. Java数据库缓存思路

    为什么要用缓存?如果问这个问题说明你还是新手,数据库吞吐量毕竟有限,每秒读写5000次了不起了,如果不用缓存,假设一个页面有100个数据库操作,50个用户并发数据库就歇菜,这样最多能支撑的pv也就50 ...

  5. JAVA思维导图系列:多线程0基础

    感觉自己JAVA基础太差了,又一次看一遍,已思维导图的方式记录下来 多线程0基础 进程 独立性 拥有独立资源 独立的地址 无授权其它进程无法訪问 动态性 与程序的差别是:进程是动态的指令集合,而程序是 ...

  6. 从一次线上故障思考Java问题定位思路

    问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后,现网机器出现了Full GC告警,同时CPU飙高99%.在优先恢复现网服务正常后,开始着手定位Full GC的问题.在现场只能够 ...

  7. 简单java web制作思路

    经过俩天的摸索,和学姐的帮助下终于做出来一个简单地网页版的学生信息添加的系统.接下来说一下答题的思路: 首先我个人习惯先做网页界面,创建3个jsp文件分别是添加界面,成功界面,失败界面.这件看起来更加 ...

  8. Linux资料 帮你理清思路

    很多同学接触linux不多,对linux平台的开发更是一无所知. 而现在的趋势越来越表明,作为一个优秀的软件开发人员,或计算机it行业从业人员,="" 掌握linux是一种很重要的 ...

  9. Java思维导图之Class对象

    Class对象相关知识导图: 导图源文件保存地址:https://github.com/wanghaoxi3000/xmind

随机推荐

  1. 查看 设置mysql时区

    # 查看时区 show variables like '%time_zone%'; system_time_zone CST time_zone SYSTEM # 设置全局 set global ti ...

  2. express基础项目创建

    https://www.cnblogs.com/zhentaoo/p/6392248.html

  3. DOCKER学习 docker

    DOCKER只能安装到LIUX系列机器上 如果WINDOWS想安装必须通过虚拟机来完成. 比如用VM,VBOX等 安装之前需要用ROOT账户 su 安装DOCKER (CE是个人版本,EE是企业版本) ...

  4. apache-tomcat 部分中文.html .jsp 连接 404问题

    修改文件到 自己的安装目录:\apache-tomcat-7.0.79\conf 添加   Connector URIEncoding="utf-8" <Connector ...

  5. mysql学习--1.事务

    转载自孤傲苍狼的博客:http://www.cnblogs.com/xdp-gacl/p/3984001.html 四.事务的四大特性(ACID) 4.1.原子性(Atomicity) 原子性是指事务 ...

  6. js学习之原生js实现懒加载

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  7. cpptest测试总结

    项目继续,持续新增中-- 桩函数设置 桩 (函参指针赋值) √:fun(*p) { for(int i = 0; i<6; i++) p[i] = 10; } ×:fun(*p) { for(i ...

  8. 推荐一款Notepad++主题Dracula

    https://draculatheme.com/notepad-plus-plus/ Activating theme Go to %AppData%\Notepad++\themes Place  ...

  9. AX_Query

    static void example(Args _args)  {      SysQueryRun     queryRun = new SysQueryRun(querystr(KTL_Sale ...

  10. 返回上一页 html A标记代码

    <a class="sjad" href="#" onClick="javascript:history.back(-1);"> ...