自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 go内存回收

前面的三色标记算法+sweep需要stw,造成性能下降比较大,优化思路并发。解决了错误回收问题,没有解决回收精度不足问题,也就是当前GC错误未回。并发三色标记+混合写屏障+清除。

2024-10-15 09:57:42 408

原创 go 协程和协程调度

当前m因为g的原因阻塞了,会将p调度到另外一个线程上去执行;当前g返回后,m会尝试获取一个空闲p来执行g,否则m睡眠,g加入全局队列。创建goroutine时,优先放入P的本地队列,满足程序局部性,也避免不同P去并发竞争全局队列的锁。N:1 应用进程的所有线程绑定一个内核线程,无法使用处理器多核能力,一个线程阻塞,整个进程就阻塞,导致整体失去并发能力。P->processor 用户态的结构,持有一个本地goroutine队列。当m上的p的本地g队列没有数据时,从其他p上去偷取,偷取不到再去全局队列取。

2024-10-14 16:05:32 377

原创 jvm类加载

如果继续沿用双亲委派,就会存在问题,提供者由 Bootstrap ClassLoader 加载,而实现者是由第三方自定义类加载器加载。这个时候,顶层类加载就无法使用子类加载器加载过的类。b.缺点:在双亲委派中,子类加载器可以使用父类加载器已经加载过的类,但是父类加载器无法使用子类加载器加载过的类(类似继承的关系)。a.优点:一句话总结,双亲委派可以保证一个类不会被多个类加载器重复加载,并且保证核心 API 不会被篡改。问题:什么是类加载,如何加载,为什么要这样设计,有什么优缺点+如何优化?

2024-10-12 11:40:35 329

原创 docker和k8s相关

service定义了一组pod和访问这组pod的方式,以及方便地管理这组pod。

2024-10-11 19:18:36 172

原创 go语言学习和使用

基本语法go的参数传递go参数是值传递,但是参数有 值类型和引用类型;1. 如果传值类型参数+值传递,就不能修改原始内容;2. 如果传引用类型(指针slice、map、chan属于引⽤类型) 就可以修改原来的内容

2024-10-08 10:00:36 206

原创 【凤凰架构】分布式的基石-流量治理

是什么:要实现某种容错策略,该怎么做?是什么:面对故障我们该做什么?

2024-10-07 22:05:38 224

原创 Redis学习笔记

主从同步基础概念--摘自javaEE互联网级轻量框架开发基础读写分离读写分离前提--读操作比写操作频繁很多。在多台服务器中,只有一台主服务器,主服务器负责写入数据,不负责外部读取请求。存在多台从服务器,不负责外部写入请求,只负责同步主服务器数据和响应外部读取请求。主服务器在写入数据后,即刻同步给从服务器。应用程序可以随机读取某一台从服务器的数据,这样就分摊了读数据的压力...

2018-03-23 17:20:58 304

原创 Java多线程 Chapter 7 拾遗增补

Chapter 7 拾遗增补7.1 线程的状态线程对象不同运行时期有不同状态,存State枚举类中。publicstatic enum Thread.StateNEW 使用构造函数后,start之前。RUNNABLE 正在java虚拟机中执行。BLOCKED 受阻塞并等待某个监视器的锁。WAITING 调用wait等函数,无限期等待其他线程执行完。TIMED W...

2018-03-19 14:17:03 258

原创 Chapter 5 Timer

Chapter 5 Timerjava.util.Date;java.util.Calendar;java.util.TimerTask;java.util.Timer;Calendar calendar = Calendar.getInstacnce();calendar.add(Calendar.SECOND,amount);Date date = calendar.get...

2018-03-18 12:33:38 337

原创 Java多线程 Chapter 4 Lock 的使用

Chapter 4 Lock 的使用4.1 使用ReentrantLock类import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;import java.util.concurrent.locks.Condition;try{...

2018-03-18 12:31:00 262

原创 Java多线程 chapter 3 线程间通信

chapter 3 线程间通信3.1 等待/通信机制3.1.1实现wait()是object类方法,只能在同步方法或者同步块中调用wait()方法。 执行wait()方法后,当前线程释放锁,在从wait返回前,线程与其他线程竞争重新获得锁。 如果调用wait,没有持有锁,会抛出IllegalMonitorStateException 属于 RuntimeException。不需...

2018-03-18 12:30:39 276

原创 Java多线程 chapter 2 对象及变量的并发访问

chapter 2 对象及变量的并发访问2.1synchronized 同步方法2.1.1方法内的变量为线程安全“非线程安全”问题存在于“实例变量”中,如果是方法内部的私有变量,则不存在“非线程安全”问题,所得结果就是安全的了。实例变量*i*,被包装到不同*Thread*中的*MYThread*多次访问,都是同一个*i*变量2.1.3多个对象多个锁关键字sync...

2018-03-18 12:30:10 258

原创 Java多线程 Chapter 1 Java 多线程

Chapter 1 Java 多线程1.1.进程与线程进程是操作系统结构的基础,它是系统进行资源分配和调度的一个独立单位。 线程是进程中独立运行的子任务。1.2.继承Thread类class Thread extends Runnable{}//Thread(Runnable) 可以传入**Runnableand Thread object//so that we ...

2018-03-18 12:29:47 236

原创 Java编程思想 ch2 一切都是对象

2.1 用引用操纵对象reference 引用 关联 对象。String s 创建对象的引用,而不是对象。String s ="adc" ; s 关联了 对象 "adc".在使用任何引用前,必须为它关联一个对象。2.2 new2.2.1 存储到什么地方 1)寄存器。不可控制。最快。 2)堆栈。RAM,堆栈指针向下分配内存,向上释放内存。对象引用存储...

2018-03-18 12:18:49 344

原创 Java编程思想ch5 初始化和清理

5.1 用构造器初始化 new 类名() 将创建和初始化,绑在一起。5.2 方法重载5.4 this关键字class Banana{void peel(int i)}{}public class BananaPeel{ public static void main(String[] args){ Banana a = new Bana...

2018-03-18 12:18:32 377

原创 ch5 初始化和清理

5.1 用构造器初始化 new 类名() 将创建和初始化,绑在一起。5.2 方法重载5.4 this关键字class Banana{void peel(int i)}{}public class BananaPeel{ public static void main(String[] args){ Banana a = new Bana...

2018-03-18 12:18:06 328

原创 Java编程思想 ch6 访问权限控制

6.1 包:库单元 public class FullQualification{ public static void main(String[] args){ java.util.ArrayList list = new java.util.ArrayList(); } } import java.util...

2018-03-18 12:17:20 221

原创 ch7 复用

7.1 组合将对象引用置于新类中。package Cha7;import static tools.Print.print;class Soap{ private String s; Soap(){ print("Soap()"); s = "Constructured"; } public String toStri...

2018-03-18 12:16:39 366

原创 Java编程思想 ch8 多态

8.1 再论向上转型对象既可以作为本身的类型使用,也可以作为它的基类使用--向上转型。向上转型可能会缩小接口,但不会比基类的接口更小。8.2 绑定8.2.1 方法调用绑定问题:public void tune(Instrument i){ i.play();}编译器如何知道接受的Instrument对象是Wind对象,还是其他子类?### 8.2.1 方...

2018-03-17 19:55:01 268

原创 Java 编程思想ch9 接口

9.1 抽象类和抽象方法抽象类–普通类和接口之间的中庸之道abstract void f() 包含一个或者多个抽象方法的类必须被限定为抽象的。 从一个抽象类继承,并想创建新的类对象,必须覆盖基类的所以抽象方法。9.2 接口接口中方法只有 声明 方法名、参数列表、返回类型。没有具体实现。即,public void f();interface 关键字。implem...

2018-03-17 19:54:37 291

原创 java编程思想 ch10 内部类

嵌套类(nested class)是指被定义在另一个类的内部的类。嵌套类的目的应该只是为它的外围类(enclosing class)提供服务。如果嵌套类将来可能会用于其他某个环境中,它就应该是顶层类,而不是被设计为嵌套类。嵌套类分如下四种: 静态成员类(static member class)、非静态成员类(nostatic member class)、匿名类(anonymous class)和...

2018-03-17 19:54:01 301

原创 Java编程思想 ch11 持有容器

package Cha11;import java.util.*;class Apple{ private static long counter; private final long id = counter++; public long id(){return id;} }class Orange{}/** * Created by YL ...

2018-03-17 19:47:40 286

原创 Java编程思想 ch13 字符串

13.1 不可变StringString对象是不可变的。String类中每个看起来会修改String值的方法,实际都是创建了一个新的String对象。13.2 重载+和StringBuilder重载操作符的意思是一个操作符被用于特定的类时,被赋予了特殊的意义。用于String的“+”和“+=”是 Java中仅有的两个重载过的操作符,而且java不需要程序员重载任何操作符。问题在于...

2018-03-17 19:45:59 307

原创 Java编程思想 ch14 类型信息

key–运行时如何识别类型信息RTTI Runtiem Type Information14.2 Class 对象类是程序的一部分,每个类都有一个Class对象。每当编写并编译了一个类,都会产生一个Class对象(保存在一个同名的.class文件)。为了产生这个类的对象,运行这个程序的Java虚拟机(JVM)将使用被称为“类加载器”的子系统。 动态加载,当程序创建第一个对类的静...

2018-03-17 19:45:26 274

原创 Java编程思想 ch15 泛型

package Ch15;public class Fibonacci implements Generator<Integer> { private int count=0; public Integer next(){return fib(count++);} private int fib(int n){ if(n<2) retu...

2018-03-17 19:45:07 922

原创 Java编程思想 ch16 数组

16.1数组为什么特殊数组和其他种类的容器之间区别有三方面: 效率,类型,保存基本类型的能力。效率:效率最高的存储和访问对象引用的方式。ArrayList弹性带来的开销,使得ArrayList效率比数组低很多。类型:在泛型之间,其他容器都将对象当作Object处理。数组可以持有对象类型。可以通过编译期检查(静态检查)防止插入抽取不当类型。16.2 数组是第一级对象数组标识...

2018-03-17 19:44:46 299

原创 Java编程思想 Ch19 枚举

19.1 基本enum特性package Ch19;import static net.mindview.util.Print.print;import static net.mindview.util.Print.printnb;enum Shrubbery{ GROUND, CRAWLING, HANGING }public class EnumClass { p...

2018-03-16 11:26:27 805

原创 Java编程思想 Ch20 注解

注解(也称元数据)三种标准注解 @Override 表示当前方法覆盖超类中的方法 @Deprecated 使用注解为这个的元素,编译器会发出警告 @SuppressWarnings 关闭不当编译器警告信息20.1 基本语法20.1.1 定义注解package Ch20;import java.lang.annotati...

2018-03-16 11:25:59 239

原创 Java网络编程 Ch13 IP组播

组播地址和组组播–介于点对点传播和广播之间。组播地址(multicast address)是称为组播组(multicast group)的一组主机共享地址。组播组是一组共享一个组播地址的主机。任何发送给该组播地址的数据都会中继给组中所有成员。MulticastSocketpublic class MulticastSocket extends DatagramSoc...

2018-03-16 09:21:21 303

原创 Java网络编程 Ch12UDP

UDP协议DatagramPacket和DatagramSocket。形式,数据报。UDP客户端package Ch12;import java.net.DatagramPacket;import java.net.DatagramSocket;import java.net.InetAddress;public class DaytimeUDPClient {...

2018-03-16 09:21:03 379

原创 Java网络编程 Ch11非阻塞IO

package ch11;import java.io.IOException;import java.net.InetSocketAddress;import java.net.SocketAddress;import java.nio.ByteBuffer;import java.nio.channels.Channels;import java.nio.channels.Soc...

2018-03-16 09:20:43 343

原创 Java网络编程 Ch10 secure socket Layer

//定义Java安全网络通信的API抽象类javax.net.ssl;//创建安全socket的工厂类javax.net;//处理SSL所需公开米密匙java.security.cert;com.sun.net.ssl;创建安全客户端Socketpackage Ch10;import javax.net.ssl.SSLSocket;import javax.net...

2018-03-16 09:20:22 356

原创 Java网络编程 Ch9 服务器Socket

基本流程////在指定端口新建ServerSockettry (ServerSocket server = new ServerSocket(1024)){ while (true) { //accept阻塞调用,一直等待 try (Socket connection = server.accept())...

2018-03-16 09:19:39 295

原创 Java网络编程 Ch8 ClientSocket

使用Socket客户端Socket仅实现前四个功能。服务器端实现全部功能。Telnet研究协议用Socket从服务器读取package Ch8;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.Sock...

2018-03-16 09:19:09 335

原创 Java网络编程 Ch7 URLConnection

java.net 中只有URLConnection类。具体子类都在sun.net中。URLConnection和URL的区别:提供对HTTP首部的访问。可以配置发送给服务器的请求参数。还可以向服务器写入数据。读取服务器数据读取首部(response)获取指定首部public String getContentType() public int g...

2018-03-16 09:18:42 296

原创 Java网络编程 Ch6 HTTP

Cookiepackage Ch6;import java.net.CookieHandler;import java.net.CookieManager;import java.net.CookiePolicy;//默认情况下Cookie并不打开,需要启用Cookiepublic class CookieTest { public static void main(S...

2018-03-16 09:18:11 213

原创 TreeMap

//提供了Map的基本方法public abstract class AbstractMap<K,V> implements Map<K,V> {}//提供了有序键,应该实现的方法。public interface SortedMap<K,V> extends Map<K,V> {}public class TreeMap<K,V&...

2018-03-15 15:48:38 152

原创 Set

public interface Set<E> extends Collection<E> {}//继承AbstractCollection是继承基本集合功能,实现Set接口,是添加新的功能。使集合满足Set性质。/*原来的概念有误,一个具体类实现接口或者继承抽象类,必须实现其中全部抽象方法(接口中方法自动为抽象方法)。而一个抽象类实现接口,可以选择实现某些方法和不实现...

2018-03-15 15:48:15 224

原创 List

Listpublic interface List<E>extends Collection<E>Object[] toArray()<T> T[] toArray(T[] a) 如果a长度小了,分配新的数组返回。过大,在a后面补null(list里面不能包含null时才行) toArray(new Object[0])等同于toArr...

2018-03-15 15:47:50 172

原创 LinkedList阅读

/*提供一系列加链和去链私有方法,真正操作链表的函数*/private void linkFirst(E e) { final Node<E> f = first; final Node<E> newNode = new Node<>(null, e, f); first = newNode; i...

2018-03-15 15:47:31 215

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除