java思维导图笔记补充
Java程序设计(基础)思维导图-简单高清脑图_知犀思维导图思维导图-简单高清脑图_知犀

Java程序设计(基础)概述特点面向对象平台可移植性分布式多线程安全性工作方式开发工具JDKjavacjava javadocIDElntelliJEclipse NetBeans术语JDK JREJVM API源程序结构package管理类解决命名冲突import class 注释行注释//块注释/*…*/文档注释/**…*/@author @param@return @throws基本语法关键字有特殊含义的单词(50)能用的(48)不能用的(2)gotoconst 标识符给类、接囗、方法、变量等起的名字命名规则字母、数字、下划线和$,数字不能开头大小写敏感不能跟关键字和保留字(null、true、false)冲突见名知意驼峰标识类名每个单词首字母大写变量和方法名从第二个单词开始每个单词首字母大写命名常量全大写,多个单词用下划线隔开运算符分类算术运算符赋值运算符关系运算符短路运算符条件运算符(三目运算符)自增/自减运算符正负号运算符移位运算符布尔运算符位运算符new 创建对象instanceof运行时类型识别()强制类型转换改变运算优先级[]下标运算符.取成员运算符优先级搞不清楚优先级直接加()结合性从左向右从右向左赋值运算自加自减条件运算正负号字面量整型字面量:100、100L浮点型字面量:3.5、3.5F、3.123e2字符字面量:'a'、'\t'、'\123'布尔型字面量:true、false引用字面量:null类型字面量:String.class、int.class分隔符数据类型基本类型整叙byteshortintlong小数floatdoublecharboolean 枚举类型enum引用类型String数组自定义的类或接囗面向对象基本概念类对象的蓝图和模板类与类之间的关系IS-A:继承泛化实现HAS-A:关联关联聚合合成USE-A:依赖定义类[访问修饰符] [修饰符] class类名 [extends 父类] [implements 接囗1,接口2,...] {}属性:数据抽象方法:行为抽象构造器创建对象:new构造器()对象一切皆为对象对象都有属性和行为对象都是唯一的对象都属于某个类消息调用对象的方法就是给对象发送了一个消息一个对象能够接受某种消息,就意味着该对象向外界提供了某种服务三大支柱封装隐藏一切可隐藏的实现细节,只暴露最简单的编程接囗继承从已有类创建新类的过程提供继承信息的类叫父类(基类、超类)得到继承信息的类叫子类(派生类)子类可以继承到父类中public、protected的属性和方法Java中的继承是单继承Object类是所有类的父类多态定义解释1:同样的引用调用同样的方法却做了不同的事情解释2:当A系统访问B系统提供的服务时,B系统有多种提供服务的方式,但对A系统来说是透明的实现方法重写:不同的子类对父类的同一方法给出不同的实现版本对象造型:用父类型的引用引用子类型的对象相关内容访问修饰符类public默认方法、属性、内部类public protected默认private抽象类如果一个类有抽象方法,这个类必须被声明为抽象类抽象类中可以没有抽象方法,抽象类也可以有自己的构造器抽象类不能实例化(不能创建对象)强烈建议:将被继承的类设计成抽象类接囗接囗是约定:实现接囗的类必须重写接口中所有方法,否则就要声明为抽象类接囗代表能力:实现了接囗的类就具备了接囗所描述的能力接囗是一种角色:一个类可以实现多个接囗,一个接囗也可以被多个类实现Java中的接囗单方法接囗:这个唯一的方法通常都是回调方法ActionListener Runnable Comparable标识接囗:没有方法,但是表示了某种能力CloneableSerializable常量接囗:这是接囗最不正确的用法内部类相当于外部类中的一个属性内部类可以访问外部类的私有成员设计原则单一职责原则专业化模块化开闭原则抽象是关键封装可变性依赖倒转原则里氏替换原则接囗隔离原则合成聚合复用原则迪米特法则字符串String创建字符串对象String s="Hello";s引用静态区的字符串字面量String s=new String(Hello")s引用堆上的字符串对象字符串的方法长度:length()取字符:charAt(int)变大/小写:toUpperCase()/toLowerCase()连接:concat(String)比较:equals(String)/compareTo(String)判断开头/结尾:startsWith(String)/endsWith(String)模式匹配:indexOf(String,[int])/lastlndexOf(String,[int]取子串:substring(int,[int])修剪左右两边空白:trim()替换:replace(String,String)/replaceAII(String,String拆分:split(String)String代表的是不变字符串可以被修改的字符串StringBuilder 适用于单线程环境StringBuffer适用于多个线程操作同一个字符串的场景方法在指定位置插入字符串:insert(int,String)删除指定位置的字符:delete(int,int)倒转:reverse()追加:append(String)方法[访问修饰符] [修饰符]返回类型方法名([参数列表])[异常声明]访问修饰符public protected默认private修饰符static abstractfinal修饰变量,变量变成常量修饰类,类不能被继承修饰方法,方法不能被重写synchronizednative方法调用静态方法:类名.方法名(实参列表)非静态方法:对象.方法名(实参列表)递归数组基本用法数组的定义数组的初始化new静态初始化length属性下标运算Arrays工具类sort:排序toString:将数组变成字符串copyOf:数组拷贝equals:比较数组元素是否相同二维数组一个普通数组,每个元素又是一个数组应用表格矩阵2D游戏中的地图棋盘流程控制循环结构分类while循环do…while循环for循环for-each循环相关关键字breakcontinue分支结构if...elseswitch...case...default顺序结构。
思维导图整理Java并发基础知识

思维导图整理Java并发基础知识话不多说,先上图。
1、基本概念欲说线程,必先说进程。
•进程:进程是代码在数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
•线程:线程是进程的一个执行路径,一个进程中至少有一个线程,进程中的多个线程共享进程的资源。
操作系统在分配资源时是把资源分配给进程的,但是 CPU 资源比较特殊,它是被分配到线程的,因为真正要占用CPU运行的是线程,所以也说线程是CPU分配的基本单位。
在Java中,当我们启动 main 函数其实就启动了一个JVM进程,而 main 函数在的线程就是这个进程中的一个线程,也称主线程。
示意图如下:一个进程中有多个线程,多个线程共用进程的堆和方法区资源,但是每个线程有自己的程序计数器和栈。
2、线程创建和运行Java中创建线程有三种方式,分别为继承Thread类、实现Runnable接口、实现Callable接口。
•继承Thread类,重写run()方法,调用start()方法启动线程public class ThreadTest { /** * 继承Thread类 */ public static class MyThread extends Thread { @Override public void run() { System.out.println('This is child thread'); } } public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); } }•实现 Runnable 接口run()方法public class RunnableTask implements Runnable {public void run() {System.out.println('Runnable!');}public static void main(String[] args) {RunnableTask task = new RunnableTask();new Thread(task).start();}}上面两种都没有返回值。
java思维导图笔记

Java思维导图笔记1. 什么是思维导图思维导图是一种用于展示思维和概念之间关系的图形工具。
它能够帮助我们整理、组织和表达思维。
在学习和思考过程中,使用思维导图可以更清晰地将复杂的信息归类和记录,提高信息的理解和记忆。
2. Java基本语法2.1 数据类型Java提供了一系列的数据类型,包括基本数据类型(如整数、浮点数、字符、布尔值)和引用数据类型(如类、接口、数组等)。
常见的基本数据类型有: - 整数类型:byte、short、int、long- 浮点数类型:float、double - 字符类型:char - 布尔类型:boolean引用数据类型: - 类(class):是面向对象编程中的基本概念,用来封装数据和方法。
- 接口(interface):是一种抽象的数据类型,用来定义类的行为规范。
- 数组(array):用来存储一组相同类型的元素。
2.2 控制流程语句控制流程语句用于控制程序的执行流程。
Java提供了三种主要的控制流程语句:顺序结构、选择结构和循环结构。
顺序结构是最简单的控制流程,指按照代码的先后顺序执行。
选择结构用于根据条件选择不同的执行路径。
常见的选择语句有:- if语句:用于根据一个条件判断选择是否执行某个代码块。
- switch语句:用于根据一个表达式的值选择执行不同的代码块。
循环结构用于重复执行某个代码块直到满足退出条件。
常见的循环语句有: - while语句:在循环开始之前,先判断条件是否满足,如果满足则执行循环体,然后再次判断条件。
- do-while语句:先执行一次循环体,然后再判断条件是否满足,如果满足则继续执行循环体。
- for语句:在循环开始之前,先执行初始化表达式,然后判断条件是否满足,如果满足则执行循环体,并在每次循环结束后执行更新表达式。
2.3 方法方法是一种可重复使用的代码块,用于执行特定的任务。
在Java 中,每个方法都有名称和参数列表,有时也有返回值。
Java 技术栈(思维导图)

Spark:Core、SQL、Streaming、MLib、GraphX……
大数据
Flink、ELK、Ansible……
Jenkins、JIRA、GitlabCI、TravisCI……
DevOps
JWT、SSO、ELK、秒杀……
解决方案
进阶
Java 技术栈
初级
Java 平台
发行版;面向对象;类加载、运行机制;编译、解释、JIT……
微服务
MySQL:B树、B+树、Hash表、隔离性、一致性、原子性、分布式事务、锁、 binlog、redolog、主从同步……
Redis:线程模型、缓存穿透/雪崩、集群和哨兵、分布式锁……
消息队列:RabbitMQ、Kafka、RocketMQ……
Nginx:反向代理、负载均衡…… Elasticsearch、MongoDB、图数据库……
TCP、UDP、HTTP(s)、RPC、WebSocket……
常用协议
内存分配、线程模型…… GC日志、诊断工具、问题定位、调优策略……
JVM
锁:自旋锁、偏向锁、锁粗化/锁消除、分段锁、读写锁、公平锁、非公平锁、乐 观锁、悲观锁……
同步器:CAS、AQS、自旋…… 并发模型:并行、响应式、函数式、Actor、Channel……
Redis
缓存、持久化……
算法 & 数据结构
树、堆、链表、数组…… 查找、排序、递归……
设计模式
单例、工厂、构建器、装饰器、迭代器、观察者……
开发框架
Spring MyBatis
基础:Context、IOC、AOP、Bean、MVC…… SpringBoot:自动装配、嵌入式容器……
SqlSession、Executor……
java 知识点总结 脑图

java 知识点总结脑图Java作为一种广泛应用的编程语言,具有强大的跨平台特性和丰富的类库,是现代软件开发中不可或缺的一部分。
以下是Java语言的主要知识点总结,包括语法、面向对象、集合框架、并发编程、IO流、网络编程等方面的内容。
1. 语法基础- 变量和数据类型:Java提供了丰富的数据类型,包括基本数据类型和引用数据类型。
变量的声明和初始化是Java程序设计的基本操作。
- 运算符:Java支持各种类型的运算符,包括算术运算符、逻辑运算符、比较运算符等。
- 控制流程:Java提供了if-else、switch、for、while等控制流程,可以实现程序的逻辑控制和循环操作。
2. 面向对象- 类和对象:Java是一种面向对象的编程语言,类是Java程序设计的基本单位,对象是类的实例化。
- 继承和多态:Java支持类的继承和方法的重写,实现了代码的复用和类型的灵活性。
- 接口和抽象类:接口和抽象类是Java中实现多态的重要手段,可以实现代码的解耦和模块的扩展。
3. 异常处理- 异常分类:Java中的异常分为受检异常和运行时异常,分别对应编译期异常和运行期异常。
- 异常处理机制:Java提供了try-catch-finally的异常处理机制,可以捕获和处理程序运行时发生的异常。
4. 集合框架- 集合接口和类:Java提供了丰富的集合接口和类,包括List、Set、Map等,用于实现各种数据结构和算法。
- 集合操作:Java中的集合框架提供了丰富的操作方法,包括增删改查、遍历操作等。
5. 并发编程- 线程基础:Java中的线程是实现并发编程的基本单位,可以实现多任务的并行执行。
- 同步机制:Java提供了synchronized关键字和Lock接口等同步机制,可以实现线程的安全和数据的共享。
- 并发工具类:Java中的并发工具类包括CountDownLatch、Semaphore、CyclicBarrier 等,可以实现高级的并发控制。
java知识点思维导图

java知识点思维导图Java 知识点思维导图Java 作为一门广泛应用的编程语言,拥有丰富的知识体系。
为了更清晰地理解和掌握 Java 的知识点,我们可以通过思维导图的方式来进行梳理。
一、基础语法这是 Java 学习的基石,包括变量和数据类型、运算符、控制流语句(如 ifelse、for、while、dowhile 等)。
变量就像是一个个小盒子,用来存放不同类型的数据,比如整数、小数、字符、字符串等等。
数据类型决定了这些小盒子能装什么样的数据。
运算符则是对这些数据进行各种操作的工具,有加、减、乘、除、比较大小等等。
控制流语句则决定了程序执行的顺序和逻辑,比如 ifelse 可以根据条件来决定执行哪一段代码,for 循环可以让一段代码重复执行指定的次数。
二、面向对象编程(OOP)这是 Java 的核心概念之一。
包括类和对象、封装、继承、多态。
类是对象的模板,它描述了对象具有的属性和方法。
对象则是根据类创建出来的具体实例。
封装是把类中的属性和方法进行隐藏,只暴露必要的接口给外部使用,提高了代码的安全性和可维护性。
继承允许一个类从另一个类中获取属性和方法,从而实现代码的复用和扩展。
多态则是同一个方法在不同的对象上有不同的实现,增加了程序的灵活性。
三、异常处理在程序运行过程中,可能会出现各种意外情况,比如文件找不到、网络连接中断等。
Java 通过异常处理机制来处理这些情况。
通过 trycatch 语句来捕获和处理可能出现的异常,让程序在出现异常时能够以一种可控的方式继续运行,而不是直接崩溃。
四、数组和集合数组是一种固定长度的数据结构,可以存储相同类型的元素。
集合则更加灵活,比如 ArrayList、HashSet、HashMap 等。
ArrayList 可以动态增长和收缩,HashSet 不允许重复元素,HashMap 用于存储键值对。
五、输入输出(I/O)操作包括文件读写、控制台输入输出等。
通过 File 类和相关的流(如 FileInputStream、FileOutputStream 等)来实现对文件的操作。
Java工程师学习之路思维导图

Java⼯程师学习之路思维导图前⾯看Hollis的微信公众号更新了Java⼯程师成神之路的⽂档,感觉⾥⾯的内容清晰、齐全,可以⽤来审视⾃⼰,也能够知道⾃⼰在那些⽅⾯可以继续前⾏,想着有时间分享出来。
⼀、基础篇JVMJVM内存结构堆、栈、⽅法区、直接内存、堆和栈区别Ja va内存模型内存可见性、重排序、顺序⼀致性、volatile、锁、final垃圾回收内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定JVM参数及调优Ja va对象模型oop-klass、对象头H o tSpo t即时编译器、编译优化类加载机制classLoader、类加载过程、双亲委派(破坏双亲委派)、模块化(jboss modules、osgi、jigsaw)虚拟机性能监控与故障处理⼯具jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler编译与反编译javac 、javap 、jad 、CRFJava基础知识阅读源代码String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、 HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap、HashSet & LinkedHashSet & TreeSetJa va中各种变量类型熟悉Ja va Str ing的使⽤,熟悉String的各种函数JDK 6和JDK 7中substring的原理及区别、replaceFirst、replaceAll、replace区别、String对“+”的重载、String.valueOf和Integer.toString的区别、字符串的不可变性⾃动拆装箱Integer的缓存机制熟悉Ja va中各种关键字transient、instanceof、volatile、synchronized、final、static、const 原理及⽤法。
Java后端学习思维导图-简单高清脑图_知犀思维导图思维导图-简单高清脑图_知犀

Java后端学习学习路线
掌握Java基础语法
数据类型
数组
循环语句
等等
OOP特性(掌握)
封装
继承
多态
工具类
异常处理与调试
集合框架(主Map和Listen)
多线程
Socket
多线程(Thread,Runnable)
数据库
MySQL(掌握SQL语句)
JDBC
Web
Html/css
Javascript
JQuery
Web主流框架技术
Spring3.x
Struts2.x
等等
三阶标准
入门学习书籍和课本的知识(掌握基础的Java,web,MySQL)
掌握掌握web基础技术和主流框架技术,并能简单做些小开发
精通能够熟练运用所学知识进行项目实战,做出合理开发和优化
学习资源
书籍资源
《Spring Boot 2.0企业级应用开发实战》
《Spring Cloud微服务架构开发实战》
《Java核心技术及面试指南》
老师上课PPT等资源
网络资源
中国大学MOOC,blibli等
Spring Cloud官网,W3C,菜鸟教程等
CSDN,博客园等
开发工具
IDEA
MySQL
Firefox
应用领域
企业级应用开发
大到全国联网的系统,小到中小企业的应用解决方案,
JAVA都占有极为重要的地位
网站开发是JSP+Servlet+JavaBean,一直以来都相当流行
移动领域国内主要典型的应用是手机游戏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、时间规划:经验和直觉的时间*2+10%
UML可服务于第一阶段
阶段2:如何构建
一套设计方案
解释各个对象的内容
解释各个对象之间的沟通方式
UML可服务于第二阶段,处理一些图表,如流程图
阶段3:开始创建
编程即艺术
全面的思考、周密的准备、良好的构造
Java和因特网
客户端/服务端系统;
服务器
信息仓库(数据库管理系统 ,布局封装),用于投递信息的软件以及信息以及信息、软件所在的那台机器;
客户端
与服务器通信,获取信息,并作出处理;发起信息 ,要求服务端响应(事务处理)
Web
一个c/s系统(搜索正确的服务器)
单项操纵——>双向操作
浏览器图形改进+客户端编程
以内联网模式规划公司软件系统(马云的服务器架构?)
投资/回报分析
服务端编程
客户端请求——>事务处理
eg.检索——>格式化为html作为结果返回,或者客户端通过java或脚本语言自处理
eg.注册——>Perl,cgi.转为java构建更复杂的系统,即servlet
独立的领域:应用程序
Java和applet有很多争论
OOP之所以提供了对递增开发的支持,是由于假如程序设计得好,每一次递增都可以成为完善的对象或者对象组。
计划的回报:
软件开发则完全不同,它的“设计图”(计划)必须详尽而完备。
数量众多的结构和详细资料
Java还是c++
类型检查及错误控制系统
Jit编译器提升速度
使得程序更衣构建和调试,也更易理解和维护
阶段4:校订
你第一次做的东西并不完善,所以需为自己留下一个深入学习、认知的空
间,再回过头去作一些改变
理想的状态:适应各种制定的‘’使用条件‘’
校订:必须确定改动能够方便和清楚地进行。这里没有花巧可言。不仅需要理解自己构建的是什么,也要理解程序如何不断地进化。
递增开发意味着先从系统的核心入手,将其作为一个框架(架设起一个能方便扩充所有目标特性的一个框架)实现,以后要在这个框架的基础上逐渐建立起系统剩余的部分。
Applet程序片(小应用程序,只能web运行)解决客户端编程问题
ActiveX
程序+ActiveX环境——>在支持ActiveX的web下运行
安全safety
Java沙盒操作
Applet——>web——>内嵌java解释器
ActiveX数字签名(所属版权机构认证)
因特网和内联网
传统内网架构,限制了软件的迭代发展
脚本编制语言
插件的硬需求
尽量简化,易于理解
面向特定类型问题的编程语言
GUI
其他方案,java,activeX
示例:JavaScript,VBScript,Tcl/Tk(跨平台GUI构造语言)
Java
功能强大,高度安全,跨平台,国际通用的程序设计语言,生命力旺盛
多线程操作,数据库访问,联网程序设计,分布式计算
分析和设计
Don’t be lost
对象是什么(分割为组建)
接口是什么(什么消息需要分发)
说明和文档
拟出计划
决定在后面的过程中才去哪些步骤
有处理的结构
路标、目标、标志,能够加强对自身进度的把握
阶段1:要制作什么(初级阶段)
过程化设计模式-建立需求分析和系统规格-列表和基本图标的形式
1、重点:决定采用什么系统——if合集,尽可能多的总结成为使用条件或应用场合;自己的重心主要就能放在使用条件上,虽然完整的使用条件能对系统有清晰的描述,但是不可能存在完美,也不需要刻意在意完美。
客户端编程
c-port信息(包括指示CGI)——>通用网关接口CGI——>s-port.cgi_bin_menu
CGI程序响应时间——传输数据ห้องสมุดไป่ตู้、服务器,Internet网速
改善数据交互能力,提升静态HTML的利用
数据校验能力
Jar文档提供所有封装模块,避免多次“命中”?
插件
浏览器的功能,“后门”
价值:新的语言,不必经过浏览器原创者