自学01.Java高--高性能编程专题
1多线程并发
2高并发网络
3系统性能调优
欢乐大象
这个作者很懒,什么都没留下…
展开
-
高并发网络编程2.1.2 BIO阻塞式网络编程
最原始的版本客户端服务端BIOServerimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;/...原创 2019-12-25 10:35:29 · 2495 阅读 · 0 评论 -
高并发网络编程2.1.1 TCPUDP协议_batch
前提介绍原创 2019-12-20 16:54:12 · 2969 阅读 · 0 评论 -
类与 Object 的应用
类介绍类引用:使用 import 导入包或类,类引用的高级用法 : import 还可以导入静态方法和静态域的功能访问修饰符访问级别访问控制修饰符同类同包子类不同的包公开public✓✓✓✓受保护protected✓✓✓×默认没有访问修饰符✓✓××私有private✓×××(1)在开发中...原创 2019-11-12 18:49:20 · 414 阅读 · 0 评论 -
数组和排序算法的应用
认识数组数组是只能用来存储一种类型的集合,可以通过下标访问数值中的所有元素。数组的声明:方式一:int[] arr; 常用方式二:int arr[];数组初始化// 初始化方式一int[] arr = new int[5];// 初始化方式二int[] arr2 = new int[]{1, 2, 3, 4, 5};// 初始化方式二的延伸版,可省略 new int[] 直接赋...原创 2019-11-11 22:03:38 · 464 阅读 · 0 评论 -
java高级-高性能-1.2.3 JAVA锁相关术语及同步关键字synchronized详解
锁介绍原创 2019-10-28 21:28:21 · 329 阅读 · 0 评论 -
Java 面试全解析---深入了解 Java 中的异常处理 + 面试题
异常处理基础介绍先来看看异常处理的语法格式:try{ … } catch(Exception e){ … } finally{ … }其中,try:是用来监测可能会出现异常的代码段。catch:是用来捕获 try 代码块中某些代码引发的异常,如果 try 里面没有异常发生,那么 catch 也一定不会执行。在 Java 语言中,try 后面可以有多个 catch 代码块,用来捕获不...原创 2019-10-28 21:14:10 · 372 阅读 · 0 评论 -
Java 面试全解析---Java 中的运算符和流程控制 + 面试题
算术运算符++i 和 i++ 的区别++i 先自加再赋值 ----相当于 i = 1+i;i++ 先赋值再自加比如:int i = 0;int i2 = i++;int j = 0;int j2 = ++j;System.out.println("i2=" + i2);System.out.println("j2=" + j2);输出的结果:i2=0j2=1代...原创 2019-10-26 11:37:53 · 353 阅读 · 0 评论 -
Java 面试全解析---深入理解字符串 + 面试题
1 String 特性String 是标准的不可变类(immutable),对它的任何改动,其实就是创建了一个新对象,再把引用指向该对象;String 对象赋值之后就会在 常量池 中缓存,如果下次创建会判定常量池是否已经有缓存对象,如果有的话直接返回该引用给创建者。2 字符串创建字符串创建的两种方式:String str = "laowang";String str = new Str...原创 2019-10-25 14:46:44 · 484 阅读 · 0 评论 -
Java 面试全解析=基本数据类型和包装类 + 面试题
基本数据类型我们可以在代码中,查看某种类型的取值范围,代码如下:public static void main(String[] args) { // Byte 取值:-128 ~ 127 System.out.println(String.format("Byte 取值:%d ~ %d", Byte.MIN_VALUE, Byte.MAX_VALUE)); // I...原创 2019-10-25 10:57:29 · 402 阅读 · 0 评论 -
Java 面试全解析--2019年学习某课程总结(海绵式)
Java 程序是如何执行的了解任何一门语言的精髓都是先俯览其全貌,从宏观的视角把握全局,然后再深入每个知识点逐个击破,这样就可以深入而快速的掌握一项技能。从宏观 到 微观 ,由浅入深 ,抽丝剥茧 , 从易到难 ,从了解 到熟悉 学习之路 应当这般优雅。----凯Java 发展历程:1990,Sun 成立了“Green Team”项目小组1991,Java 语言前身 Oak(橡树)诞生...原创 2019-10-24 18:02:42 · 318 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.2.2 线程安全之原子操作
一串代码引出的问题public class LockDemo{ volatile int i= 0; public void add(){ i++;//实际起码三次操作 ? } public static void main(String[] args) throws InterruptedException{ LockDemo Id...原创 2019-10-25 20:22:59 · 419 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.2.1 JVM内存模拟 ,线程安全可见性, 使用volatile
多线程的问题所见非所得无法用肉眼检测程序的准确性不同的运行平台有不同的表现错误很难重现可见性问题的学习线程1 和线程2 去看一样的东西, 看上去不一样**缓存,可能导致暂时的 可见性问题重排序会导致永久的问题 ,最终使其死循环**为什么所见非所得JVM运行时数据区设计 , 多个内存 进行 ,有 公用的 ,私用的 ,之间交互 必然出现问题这就是内存模型的又来 , 包含了一系...原创 2019-10-25 20:22:51 · 396 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.7 线程池原理
线程是不是越多越好不是如无必要,尽量嫌少使用线程如果线程 创建时间+销毁时间 > 执行时间 着很不划算线程 [默认最大栈1M] 会占用内存操作系统 频繁的切换上下文 ,非常影响性能为了 既能保障 同时并发多个线程 有要减少线程数量过多带来的问题,线程池 给出了解决方案线程池–是什么API 接口定义 和实现类...原创 2019-10-25 20:22:44 · 1419 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.6线程封闭概念
并不是所有时候都要用到共享数据,不要同步 将数据封闭 的技术线程封闭技术一个常见的应用就是JDBC的Connection对象,JDBC规范并没有要求Connection对象必须是线程安全的,在服务器应用程序中,线程从连接池获取一个Connection对象,使用完之后将对象返还给连接池。下面介绍几种线程封闭技术:1、Ad-hoc线程封闭Ad-hoc线程封闭是指,维护线程的封闭性的职责完全由程序...原创 2019-10-25 20:22:35 · 739 阅读 · 1 评论 -
注释的理解
特点:注释不需要运行, 所以没有常规的办法来测试它。 注释对不对? 有没有随着代码变更? 这些问题都是写注释需要注意的地方。注释难以维护, 这是使用注释带来的最大的麻烦注释, 被我们用成万能的狗皮膏药, 有时会让代码更糟糕注释的类型多样 ,难以统一心得1.使用准确、 有意义的命名,不要滥用注释注释的类型多样第一种类型, 是记录源代码版权和授权的, 一般放在每一...原创 2019-10-25 20:21:35 · 480 阅读 · 0 评论 -
实训第三周/星期五 多线程
多线程原创 2019-10-25 20:21:03 · 325 阅读 · 0 评论 -
美团: 分布式事务方案(初探)--网易公开课笔记
分布式事务你迟早会遇到的问题分布式系统是 一个用户请求,有多个系统协调处理场景: 我点个外卖下单—>订单系统------>运单系统分布式不是一个单纯的技术问题,他是结合了事务+技术 的方案 没有统一的解决方案用户支付-----你的系统—微信/支付宝如何保证数据的一致性,正确性.基于数据库XA/JTA协议的方式需要数据库厂商支持,java组件有atomi...原创 2019-09-28 20:16:44 · 1750 阅读 · 0 评论 -
网易公开课之Sping MVC 初见
原创 2019-09-30 20:17:53 · 246 阅读 · 0 评论 -
网易云音乐-面临百万请求的最优方案(公开课-笔记)
平台构成歌曲模块:歌名 ,专辑,歌手,歌词,封面下载 ,收藏 ,分享用户模块权限用户信息评论模块分析针对解决突然都大量的人 对同一个app,软件进行请求 而采取的解决方法负载均衡器微服务拆分初级版本数据库能否对成千上万的线程的查询操作 快速响应?数据库每秒执行事务数有限(连接池爆满) , 出现查询速度很慢的情况.---->响应不及时 程序...原创 2019-09-30 22:10:16 · 399 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.1 java程序运行原理
了解内容class文件class文件包含了java程序执行的字节码;数据按照格式紧凑的排列在class文件中的二进制流 ,中间无任何分割符;文件 开头 有一个 16进制特色的标志(0x ca fe ba be)复杂的文件格式并不是给程序员看的 ,而是专门给JVM 看,人可以借助工具查看.经过不同的JVM解析 , 转换为具体平台上的机器指令实现跨平台class内容图的介...原创 2019-10-25 20:21:58 · 313 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.2 线程的6种状态
Java中线程的状态分为6种。java.lang.Thread类的State枚举中,可查看源码进行一一对应初始(NEW):新创建了一个线程对象,但还没有调用start()方法。尚未启动的线程运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()...原创 2019-10-25 20:22:05 · 638 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.3 线程的终止--Stop
呵呵 https://zhuanlan.zhihu.com/p/80238523共3种终止方式Stop这种终止之所以错误 是因为他会将程序拦腰折断 导致线程不安全后面的没有执行…推荐方式 -interrupt如果目标线程在调用Object class 的wait()、wait(long) 或wait(long, int)方 法、join()、join(long, int)或sleepl...原创 2019-10-25 20:22:13 · 316 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.4 CPU优化的两种方法及二次问题的修复 读写-内存屏障
CPU性能优化之一–缓存cacheL1-L3缓存L1-L3缓存CPU缓存一致性协议CPU主内存多级缓存,不断提高容量L1 Cache (一级缓存)是CPU第一层高速缓存, 分为数据缓存和指令缓存, 一般服务器CPU的L1缓存的容量通常在32-4096kbL2 Cache (二级缓存) 由于L1高速缓存的容量限制, 为了再次提高CPU的运算速度, 在CPU外部放置一高速缓存存储器, 即二级...原创 2019-10-25 20:22:21 · 434 阅读 · 0 评论 -
java高级-高性能-多线程并发编程--1.1.5 线程通信_重点API协作
实现多个线程的协同,线程执行先后顺序,获取某个线程执行的结果,等等.文件共享写入读取线程- 1文件系统线程- 2网络共享…共享变量写入读取线程- 1内存:变量线程- 2jdk提供的线程协调APIwait/notify 等待/通知了解了被弃用的方法,你就了解的原版本的不足和开始的解决方案.而且新的方法往往修复了原来的问题,做了规定和设计.这些方法只能由一对锁的持有者...原创 2019-10-25 20:22:29 · 667 阅读 · 0 评论 -
异常处理都有哪些陷阱?
在正常状况下使用异常处理, 无疑会降低系统的效率,以及编码的效率解决思路:正常的状况和异常的状况一定要分开、 分清, 不能混用没有分清异常的类别非正常异常(Error) : 我们通常使用“错误”这个词汇而不是“异常”来表示这类异常的命名以Error结尾, 比如OutOfMemoryError, NoSuchMethodError。 这类异常, 编译器编译时不检查, 应用程序不需...原创 2019-10-25 20:21:28 · 325 阅读 · 0 评论