干货!Java思维导图和Java技术栈

Java核心概念与编程技巧

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,longfloat,doubleboolean,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等.

视频

需要上面视频的朋友

添加小编微信好友cxycode,备注:java

添加好友,还会邀请加入技术群

扫码自动通过好友,自动回复

作者简介

达叔,理工男,简书作者&全栈工程师,感性理性兼备的写作者,个人独立开发者,我相信你也可以!阅读他的文章,会上瘾!帮你成为更好的自己。

推荐阅读

这次免费赠送10套最新的编程视频

11月份GitHub上推荐的开源项目

Docker+Jenkins+Git持续部署实践

自动运行抢票程序,编程小白也能操作!

说说你为什么没别人厉害?

 进QQ群           进微信群

点赞变好看,记得点好看

积累评论次数,为每月赠书做准备

关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk net 线程,进程 第三方库 poi Jsoup zxing Gson 数据结构 树 栈 链表 队列 图 操作系统 linux 代码控制 自动化代码检查 sonar 代码规范 阿里巴巴Java开发规范手册 UMPAY——编码规范 日志规范 异常规范 网络 协议 TCP/IP HTTP hession file HTTPS 负载均衡 容器 JBOSS tomcat resin jetty 容灾 日志框架 开源框架 slf4j 框架实现 log4j logback commong logging jdk logger 测试框架 测试框架 junit easymock testng mockito bug管理 禅道 jira 开发工具 编程工具 eclipse myeclipse idea vi VS webstorm sublime text 版本控制 svn git 项目管理 maven Nexus Jenkins 工作软件 反编译软件 office系列 下载器 adobe系列 记录软件 思维导图 office--Note 邮件管理 性能优化 分层优化 系统级别 中间件级别 JVM级别 代码级别 分段优化 前端 web应用 服务应用 资源池 数据库 大数据与nosql zookeeper hadoop hbase mongodb strom spark java语言 语言语法基础 异常 泛型 内部类 反射 序列化 nIo 匿名类 包装类 优先级 引用 语言工具类库 容器类 集合 链表 map 工具类 系统类 日期类 数字类 字符串+正则 流 字符流 字节流 语言特性 继承 封装 多态 JVM 多线程与并发 GC机制 GC收集器类型 串行 CMS 并行 G1 算法 复制 标记清理 标记整理 分区 新生代 eden survivor 老年代(old区) 永久代(perm区) 版本变化 1.5 1.6 1.7 1.8 1.9 IO/NIO IO类型 同步阻塞 同步非阻塞 基于信号 多路复用 异步IO 类加载机制 双亲委派 OSGI 算法 搜索 二分 排序 选择 冒泡 插入 快速 归并 堆 桶 基数 常用算法 贪婪 回溯 剪枝 动态规划 数据挖掘算法 KMP算法 GZZ算法 HASH分桶 关联规则算法 APRORIVE算法 分布式 负载均衡 水平伸缩 集群 分片 Key-hash 异步 一致性hash 消峰 分库分表 锁 悲观锁 乐观锁 行级锁 分布式锁 分区排队 一致性 一致性算法 paxos zab nwr raft gossip 柔性事务(TCC) 一致性原理 CAP BASE 中间件 数据库 mysql 存储引擎 索引 锁 oracle db2 缓存 redis 数据结构 持久 复制 cas 单线程 memcache eacache Tair 消息队列 jms Queue Topic kafka 持久 复制 Stream Partition rocketMQ RabbitMQ ActiveMQ 常用开源框架 Spring Spring MVC Spring WebFlow spring tx aop ioc Struts ibatis Mybatis CAS Dubbo 工作能力 软实力 应急能力 创新能力 管理能力 分享能力 学习能力 沟通能力 解决问题能力 经历 技术攻关案例 程序开发案例 程序设计案例 设计 设计原则 单一职责原则 开闭原则 里氏替换原则 依赖倒转原则 接口隔离原则 迪米特原则 设计模式 结构模式 适配器模式 桥接模式 组合模式 装饰模式 外观模式 享元模式 代理模式 创建模式 抽象工厂模式 工厂方法模式 建造这模式 原型模式 单例模式 行为模式 责任链模式 命令模式 解释器模式 迭代器模式 中介者模式 备忘录模式 观察者模式 状态模式 策略模式 模板方法模式 访问者模式 设计案例 UML 架构 系统架构能力 基本理论 扩展性设计 可用性设计 可靠性设计 一致性设计 负载均衡设计 过载保护设计 协议设计 二进制协议 文本协议 接入层架构设计 DNS轮询 动静态分离 静态化 反向代理 LVS F5 CDN 逻辑层架构设计 连接池 串行化技术 影子Master架构 批量写入 配置中心 去中心化 通讯机制 同步 RPC RMI 异步 MQ Cron 数据层架构设计 缓存优化 DAO&ORM; 双主架构 主从同步 读写分离 性能优化架构能力 代码级别 关联代码优化 cache对其 分支预测 copy on write 内联优化 系统优化 cache 延迟计算 数据预读 异步 轮询与通知 内存池 模块化 工程架构能力 开发语言 运维与监控 监控 系统监控 日志监控 流量监控 接口监控 数据库监控 业务监控 性能监控 告警 日志 设计模式 数据结构与算法 各种工具
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值