
Java基础
文章平均质量分 94
Java基础学习
ICoder_Next
数学抽象世界,物理改变世界
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
多线程——从1到100相加任务拆分到fork/join
文章目录题目:使用多线程实现1到100的相加任务1.使用多线程解决——应用CountDownLatch题目:使用多线程实现1到100的相加任务1.使用多线程解决——应用CountDownLatch/** * 使用多线程计算1-10000的值 * CountDownLatch :一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。 * 用给定的计数 初始化 CountDownLatch。调用 countDown() 使当前计数减1,在到达0之前,await 方法原创 2020-06-15 20:50:12 · 2259 阅读 · 1 评论 -
Java进阶(3)——JVM优化之tomcat优化实践和代码优化建议
文章目录1、Tomcat8优化1.1、Tomcat配置优化1.1.1、部署安装tomcat81.1.2 禁用AJP1.1.3、执行器(线程池)1.1.4、3种运行模式1.2、部署测试用的java web项目1.2.1、创建dashboard数据库1.2.2、部署web应用1.3、使用Apache JMeter进行测试1.3.1、下载安装1.3.2、创建首页的测试用例1.3.3、启动、进行测试1.3...原创 2020-02-25 21:36:07 · 1351 阅读 · 0 评论 -
Java进阶(3)——JVM优化之垃圾回收
文章目录1.什么是垃圾回收?1.1、C/C++语言的垃圾回收1.2、Java语言的垃圾回收2、垃圾回收的常见算法2.1、引用计数法2.1.1、原理2.1.2、优缺点为了测试GC,将堆的初始和最大内存都设置为16M1.什么是垃圾回收?程序的运行必然需要申请内存资源,无效的对象资源如果不及时处理就会一直占有内存资源,最终将导致内存溢出,所以对内存资源的管理是非常重要了。1.1、C/C++语言的垃...原创 2020-02-25 10:53:49 · 847 阅读 · 0 评论 -
Java进阶(3)——JVM优化之概念学习
文章目录1.了解下我们为什么要学习JVM优化掌握jvm的运行参数以及参数的设置掌握jvm的内存模型(堆内存)掌握jamp命令的使用以及通过MAT工具进行分析掌握定位分析内存溢出的方法掌握jstack命令的使用掌握VisualJVM工具的使用1....原创 2020-02-24 17:25:04 · 1718 阅读 · 0 评论 -
Java进阶(2)——NIO之网络IO、Netty、RPC
文章目录1.网络IO1.1 概述和核心 API1. Selector(选择器)2. SelectionKey3. ServerSocketChannel4. SocketChannel1.2 入门案例1.3 网络聊天案例1.网络IO1.1 概述和核心 API前面在进行文件 IO 时用到的 FileChannel 并不支持非阻塞操作,学习 NIO 主要就是进行网络 IO操作,Java NIO ...原创 2020-02-23 20:54:43 · 931 阅读 · 0 评论 -
Java进阶(1)——多线程通信与NIO
文章目录1.线程介绍2.线程间的通信3.BIO编程4.NIO编程4.1概述4.2 文件 IO4.2.1 概述和核心 API4.2.2 案例1. 往本地文件中写数据2. 从本地文件中读数据3.复制文件1.线程介绍线程是比进程更小的能独立运行的基本单位,它是进程的一部分,一个进程可以拥有多个线程,但至少要有一个线程,即主执行线程(Java 的 main 方法)。我们既可以编写单线程应用,也可以编写...原创 2020-02-22 17:02:26 · 835 阅读 · 0 评论 -
Java基础(20)——反射、注解
文章目录1.Junit单元测试:2.反射:框架设计的灵魂3.注解:1.Junit单元测试:* 测试分类: 1. 黑盒测试:不需要写代码,给输入值,看程序是否能够输出期望的值。 2. 白盒测试:需要写代码的。关注程序具体的执行流程。* Junit使用:白盒测试 * 步骤: 1. 定义一个测试类(测试用例) * 建议: * 测试类名:被测试的类名Test Calcul...原创 2020-01-19 16:53:04 · 152 阅读 · 0 评论 -
Java基础(19)——网络编程
目录第一章 网络编程入门1.1软件结构1.2 网络通信协议1.3 协议分类1.4 网络编程三要素协议IP地址端口号第二章 TCP通信程序2.1 概述2.2 Socket类构造方法成员方法2.3 ServerSocket类构造方法成员方法2.4 简单的TCP网络程序TCP通信分析图解客户端向服务器发送数据服务器向客户端回写数据第三章 综合案例3.1 文件上传案例文件上传分析图解基本实现文件上传优化分...原创 2020-01-16 11:14:09 · 790 阅读 · 0 评论 -
Java基础(18)——缓冲流、转换流、序列化流、Files
目录第一章 缓冲流1.1 概述1.2 字节缓冲流构造方法效率测试1.3 字符缓冲流构造方法特有方法1.4 练习:文本排序案例分析案例实现第二章 转换流2.1 字符编码和字符集字符编码字符集2.2 编码引出的问题2.3 InputStreamReader类构造方法指定编码读取2.4 OutputStreamWriter类构造方法指定编码写出转换流理解图解2.5 练习:转换文件编码案例分析案例实现第三...原创 2020-01-14 21:06:20 · 173 阅读 · 0 评论 -
Java基础(17)——字节流、字符流
目录第一章 IO概述1.1 什么是IO1.2 IO的分类1.3 IO的流向说明图解1.4 顶级父类们第二章 字节流2.1 一切皆为字节2.2 字节输出流【OutputStream】2.3 FileOutputStream类构造方法写出字节数据数据追加续写写出换行2.4 字节输入流【InputStream】2.5 FileInputStream类构造方法读取字节数据2.6 字节流练习:图片复制复制原...原创 2020-01-14 21:06:19 · 179 阅读 · 0 评论 -
Java基础(16)——File类、递归
目录第一章 File类1.1 概述1.2 构造方法1.3 常用方法获取功能的方法绝对路径和相对路径判断功能的方法创建删除功能的方法1.4 目录的遍历第二章 递归2.1 概述2.2 递归累加求和计算1 ~ n的和代码执行图解2.3 递归求阶乘2.4 递归打印多级目录第三章 综合案例3.1 文件搜索3.2 文件过滤器优化3.3 Lambda优化第一章 File类1.1 概述java.io.Fil...原创 2020-01-14 21:06:11 · 469 阅读 · 0 评论 -
Java基础(15)——等待与唤醒案例、线程池、Lambda表达式
目录第一章 等待唤醒机制1.1 线程间通信1.2 等待唤醒机制1.3 生产者与消费者问题第二章 线程池2.1 线程池思想概述2.2 线程池概念2.3 线程池的使用第三章 Lambda表达式3.1 函数式编程思想概述3.2 冗余的Runnable代码传统写法代码分析3.3 编程思想转换做什么,而不是怎么做生活举例3.4 体验Lambda的更优写法3.5 回顾匿名内部类使用实现类使用匿名内部类匿名内部...原创 2020-01-14 21:06:02 · 142 阅读 · 0 评论 -
Java基础(14)——多线程、线程安全
目录第一章 线程1.1 多线程原理1.2获取线程名称的两种方式1.3设置线程的名称的两种方式1.4设置线程的睡眠时间1.5 创建线程的第二种方式1.6 实现Runnable 接口创建多线程的好处第二章 线程安全2.1 线程安全第一章 线程1.1 多线程原理昨天的时候我们已经写过一版多线程的代码,很多同学对原理不是很清楚,那么我们今天先画个多线程执行时序图来体现一下多线程程序的执行流程。代...原创 2020-01-14 21:05:54 · 658 阅读 · 0 评论 -
Java基础(13)——异常、线程
目录第一章 异常1.1 异常概念1.2 异常体系1.3 异常分类1.4 异常的产生过程解析第二章 异常的处理2.1 抛出异常throw2.2 Objects非空判断2.3 声明异常throws2.4 捕获异常try…catch2.4 finally 代码块2.5 异常注意事项第三章 自定义异常3.1 概述3.2 自定义异常的练习第四章 多线程4.1 并发与并行4.2 线程与...原创 2020-01-14 21:05:38 · 167 阅读 · 0 评论 -
Java基础(12)——Map、一个案例(斗地主)
目录第一章 Map集合1.1 概述1.2 Map常用子类1.3 Map接口中的常用方法1.4 Map集合遍历键找值方式1.5 Entry键值对对象1.6 Map集合遍历键值对方式1.7 HashMap存储自定义类型键值1.8 LinkedHashMap1.9 Map集合练习第二章 补充知识点2.1 JDK9对集合添加的优化2.2 Debug追踪第三章 模拟斗地主洗牌发牌3.1 ...原创 2020-01-14 21:06:42 · 166 阅读 · 0 评论 -
Java基础(12)——List、Set、数据结构、Collections
Java基础(12)第一章 数据结构2.1 数据结构有什么用?2.2 常见的数据结构栈队列数组链表红黑树第二章 List集合1.1 List接口介绍1.2 List接口中常用方法第三章 List的子类3.1 ArrayList集合3.2 LinkedList集合第四章 Set接口3.1 HashSet集合介绍2.2 HashSet集合存储数据的结构(哈希表)2.3 HashSet存储自定义类型...原创 2020-01-14 21:05:38 · 159 阅读 · 0 评论 -
Java基础(11)——Collection、泛型
目录第一章 Collection集合1.1 集合概述1.2 集合框架1.3 Collection 常用功能第二章 Iterator迭代器2.1 Iterator接口2.2 迭代器的实现原理2.3 增强for练习1:遍历数组练习2:遍历集合第三章 泛型3.1 泛型概述3.2 使用泛型的好处3.3 泛型的定义与使用定义和使用含有泛型的类含有泛型的方法含有泛型的接口3.4 泛型通配符通配符基本...原创 2020-01-14 21:05:17 · 170 阅读 · 0 评论 -
Java基础(10)——Object类(equals与hashCode)、常用API
目录第一章 Object类1.1 概述1.2 toString方法方法摘要覆盖重写1.3 equals方法方法摘要默认地址比较对象内容比较1.4 Objects类第二章 日期时间类2.1 Date类概述常用方法2.2 DateFormat类构造方法格式规则常用方法format方法parse方法2.3 练习2.4 Calendar类概念获取方式常用方法get/set方法add方法getTime方法第...原创 2020-01-14 21:05:10 · 401 阅读 · 0 评论 -
Java基础(9)——final、权限、内部类、引用类型
目录第一章 final关键字1.概述2.使用final修饰的类final修饰方法final修饰局部变量final修饰成员变量第二章 权限修饰符第三章 内部类1.概述2.成员内部类的实现1.使用成员内部类2.内部类中的同名变量的访问3.局部内部类局部内部类的final问题4.匿名内部类【重点】第四章 引用类型的用法总结4.1类作为成员变量类型4.2 接口作为成员变量4.3 接口作为方法的参数或返回值...原创 2020-01-14 21:05:01 · 555 阅读 · 0 评论 -
Java基础(8)——接口、多态
目录第一章 三大特性——继承第一章 三大特性——继承原创 2020-01-14 21:04:51 · 665 阅读 · 0 评论 -
Java基础(7)——继承、super、this、抽象类
目录第一章 三大特性——继承1.1概述1)由来2)定义3)在代码中继承的格式1.3继承后的特点——成员变量1)成员变量不重名的情况2) 成员变量重名的情况局部变量与成员变量重名的情况1.4继承后的特点——成员方法成员方法不重名成员方法重名——重写(Override)方法重写的注意事项案例说明1.5继承后的特点——构造方法1.6 super和this关键字第一章 三大特性——继承1.1概述1)...原创 2020-01-14 21:04:44 · 661 阅读 · 0 评论 -
Java基础(6)——String类、static关键字、Arrays类、 Math类
目录第一章 String类1.1 String类概述概述构造方法1.2 字符串常量池1.3 非“==” 地址比较,字符串内容比较(equals)1.4 字符串的获取方法(length(),concat(),charAt(),indexOf())1.5字符串截取方法(subString(1),subString(1,5))1.6字符串转换相关的方法(toCharArray,getBytes,repl...原创 2020-01-14 21:04:28 · 179 阅读 · 0 评论 -
Java基础(5)——API(Scanner类、Random类、ArrayList 类)
文章目录1.API概述API使用步骤2.Scanner类2.1什么是Scanner类2.2 引用类型使用步骤1.导包2.创建对象3.调用方法2.3 Scanner使用步骤1. 查看类2. 查看构造方法3. 查看成员方法2.4 Scanner使用举例2.5 匿名对象【了解】1.匿名对象的创建2.匿名对象作为传入参数或者返回值3.Random类4.ArrayList类4.1为什么需要这个类4.2使用A...原创 2020-01-14 21:04:29 · 193 阅读 · 0 评论 -
Java基础(4)——面向对象基础
文章目录1.面向对象思想1.1 面向对象思想概述1.2 类和对象1)什么是类2)什么是对象类与对象的关系1.3 类的定义事物与类的对比类的定义格式1.4 对象的使用1.5 对象内存图1.6成员变量与局部变量的不同2.封装2.1 封装概述概述原则2.2 封装的步骤2.3封装的操作——private关键字2.4 封装优化1——this关键字2.5 封装优化2——构造方法2.6 标准代码——JavaBe...原创 2020-01-14 21:04:21 · 620 阅读 · 0 评论 -
Java基础(3)——数组中的内存
文章目录1.Java虚拟机的内存划分2.数组在内存中的存储2.1 一个数组内存图2.2 两个数组内存图2.3 两个变量指向一个数组1.Java虚拟机的内存划分为了提高运算效率,就对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。区域名称作用寄存器给CPU使用,和我们开发无关。本地方法栈JVM在使用操作系统功能的时候使用,和我们开发无...原创 2020-01-14 21:04:09 · 217 阅读 · 0 评论 -
Java基础(2)——数据类型转换与方法
文章目录第一章 数据类型转换1.1 自动转换1.2 强制类型转换1.3 ASCII编码表第二章 运算符第三章 方法入门3.1 概述3.2 方法的定义3.3 注意事项第四章 注意事项4.1 +=符号的扩展4.2 常量和变量的运算第一章 数据类型转换Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。1.1 自动转换自动转换:将 取值范围小的类型...原创 2020-01-14 21:04:02 · 244 阅读 · 0 评论 -
java基础(1)——计算机基础
文章目录1.java发展历程2.二进制的转换3.位与进制4.常用DOS命令:4.1进入DOS操作窗口:5.java语言开发环境5.1 Java虚拟机——JVM5.2 JRE 和 JDK6.HelloWorld入门程序6.1 程序开发步骤说明6.2编写HelloWorld代码6.3入门程序说明6.4 添加注释comment6.5 关键字keywords6.6 标识符7.常量与变量1 变量概述2 数据...原创 2020-01-14 21:03:47 · 258 阅读 · 0 评论