Java North

Java 's Blog


  • 首页

  • 分类

  • 作者

  • 归档

  • 关于

Java 变量——20211101

发表于 2021-09-11 | 分类于 Java基础

Java变量

大家好,我是指北君。

今天指北君来给大家讲讲Java变量。

什么是变量?

变量就是初中数学的代数的概念,例如一个简单的方程,x,y都是变量:

y=x^2+1

在Java程序设计中,变量是指一个包含值的存储地址以及对应的符号名称。

从定义上来看,变量大概可分为两部分:变量的名字和变量的值,可通过变量名来访问变量值。简单来说,变量就是存储数据的载体。

对于 Java 语言来讲,Java 是一种强类型的语言,因此变量都必须有一个类型。在 Java 代码中,变量是长这个样子的:

阅读全文 »

Doug Lea 大师的艺术之作CompletableFuture (一)——20211006

发表于 2021-09-11 | 分类于 Thread

completeFuture作为Doug Lea大师的有一个艺术作品,把并发编程的艺术发挥到极致。之前的Future为我们提供了多线程执行返回值的使用问题。而CompletableFuture则为我们提供了一种线程执行结果连续处理的能力。为多线程编程提供了更为简洁的方式。关于CompletableFuture,我会分为多篇来讲,今天会为大家介绍一下其基本方法以及不同名称参数的方法含义及作用。

阅读全文 »

LinkedHashMap 比较冷门,但是不会可不行 20210920

发表于 2021-09-10 | 分类于 JDK , 源码解读 , Java基础

哈喽,大家好,我是指北君。
说到集合类,之前介绍的ArrayList类,HashMap可能是大家日常用的最多的类,但是对于另一个集合类 LinkedHashMap,可能大家用的不多,但是这种链式哈希集合,有些情况确实特别好用。

阅读全文 »

Mysql-面试题

发表于 2021-09-05 | 分类于 Mysql

Mysql 面试题

阅读全文 »

面试题——MongoDB

发表于 2021-09-05 | 分类于 面试题 , MongoDB

MongoDB面试题

阅读全文 »

面试题——算法

发表于 2021-09-05 | 分类于 面试题 , 算法

Java算法面试题

阅读全文 »

MQ面试题

发表于 2021-09-05 | 分类于 JDK , JUC , 源码解读

1、为什么要使用MQ

核心:解耦,异步,削峰

1)解耦:A 系统发送数据到 BCD 三个系统,通过接口调用发送。如果 E 系统也要这个数据呢?那如果 C 系统现在不需要了呢?A 系统负责人几乎崩溃……A 系统跟其它各种乱七八糟的系统严重耦合,A 系统产生一条比较关键的数据,很多系统都需要 A 系统将这个数据发送过来。如果使用MQ,A 系统产生一条数据,发送到 MQ 里面去,哪个系统需要数据自己去 MQ 里面消费。如果新系统需要数据,直接从 MQ 里消费即可;如果某个系统不需要这条数据了,就取消对 MQ 消息的消费即可。这样下来,A 系统压根儿不需要去考虑要给谁发送数据,不需要维护这个代码,也不需要考虑人家是否调用成功、失败超时等情况。就是一个系统或者一个模块,调用了多个系统或者模块,互相之间的调用很复杂,维护起来很麻烦。但是其实这个调用是不需要直接同步调用接口的,如果用 MQ 给它异步化解耦。

2)异步:A 系统接收一个请求,需要在自己本地写库,还需要在 BCD 三个系统写库,自己本地写库要 3ms,BCD 三个系统分别写库要 300ms、450ms、200ms。最终请求总延时是 3 + 300 +450 + 200 = 953ms,接近 1s,用户感觉搞个什么东西,慢死了慢死了。用户通过浏览器发起请求。如果使用 MQ,那么 A 系统连续发送 3 条消息到 MQ 队列中,假如耗时 5ms,A 系统从接受一个请求到返回响应给用户,总时长是 3 + 5 = 8ms。

3)削峰:减少高峰时期对服务器压力。

阅读全文 »

为了给公司新来的妹子说清楚线程之间的通信,我用了8种方法!--20210913

发表于 2021-09-04 | 分类于 Thread

最近公司新入职了几个妹子,其中有一个妹子不停的追着我问各种问题。这次又来问我关于线程通信相关的问题。线程之间的通信以及线程之间的协作方面的面试,通常是考验一个Java程序员多线程方面的基本功。为了让妹子搞清楚线程之间的通信那些事儿,我用了8种方法!

阅读全文 »

InputStream 和 OutputStream 基础 --20210916

发表于 2021-09-03 | 分类于 某某白米饭

大家好,我是指北君。

在 java 中将程序通常会和其他外部设备进行数据交互,比如写入磁盘,网络发送数据等等,今天我们来学学 java 中 基础的 IO 流。

阅读全文 »

Java 基础语法--20210915

发表于 2021-09-02 | 分类于 Java基础

大家好,我是指北君。

今天指北君要带大家来学习Java的基础语法。

阅读全文 »

Netty-面试题

发表于 2021-09-02 | 分类于 Netty

Netty 面试题

阅读全文 »

hibernate 面试题

发表于 2021-09-01 | 分类于 hibernate , 面试题

hibernate 面试题

阅读全文 »

spring cloud 面试题

发表于 2021-08-31 | 分类于 spring

spring cloud 面试题

阅读全文 »

面试题——设计模式面试题

发表于 2021-08-29 | 分类于 面试题 , 设计模式

设计模式面试内容

阅读全文 »

面试题——面向切面面试题

发表于 2021-08-29 | 分类于 面试题 , 设计模式

AOP 即 Aspect Oriental Program 面向切面编程

阅读全文 »

Nginx面试题

发表于 2021-08-29 | 分类于 Nginx面试题

Nginx面试题

阅读全文 »

spring boot 面试题

发表于 2021-08-28 | 分类于 spring

1、spring boot 核心的两个配置文件

1、 bootstrap (.yml 或.properties):boostrap 由父 ApplicationContext 加载的,比 applicaton 优先加载,配置在应用程序上下文的引导阶段生效。一般来说我们在 Spring Cloud Config 或者 Nacos 中会用到它。且 boostrap 里面的属性不能被覆盖;

2、 application (. yml 或者 . properties):由ApplicatonContext 加载,用于 spring boot 项目的自动化配置。

阅读全文 »

Spring-面试题

发表于 2021-08-28 | 分类于 Spring

Spring 面试题

阅读全文 »

多线程面试题

发表于 2021-08-28 | 分类于 JDK , JUC , 源码解读

1、说说Java中实现多线程有几种方法

创建线程的常用三种方式:

  1. 继承Thread类

  2. 实现Runnable接口

  3. 实现Callable接口( JDK1.5>= )

  4. 线程池方式创建

通过继承Thread类或者实现Runnable接口、Callable接口都可以实现多线程,不过实现Runnable接口与实现Callable接口的方式基本相同,只是Callable接口里定义的方法返回值,可以声明抛出异常而已。因此将实现Runnable接口和实现Callable接口归为一种方式。这种方式与继承Thread方式之间的主要差别如下。

阅读全文 »

集合面试题

发表于 2021-08-28 | 分类于 JDK

1 用过ArrayList 吗?说一下它有什么特点?

只要是搞 Java 的肯定都会回答“用过”。所以,回答题目的后半部分——ArrayList 的特点。可以从这几个方面去回答:

Java 集合框架中的一种存放相同类型的元素数据,是一种变长的集合类,基于定长数组实现,当加入数据达到一定程度后,会实行自动扩容,即扩大数组大小。底层是使用数组实现,添加元素。

  1. 如果 add(o),添加到的是数组的尾部,如果要增加的数据量很大,应该使用 ensureCapacity()方法,该方法的作用是预先设置 ArrayList 的大小,这样可以大大提高初始化速度。
  2. 如果使用 add(int,o),添加到某个位置,那么可能会挪动大量的数组元素,并且可能会触发扩容机制。

高并发的情况下,线程不安全。多个线程同时操作 ArrayList,会引发不可预知的异常或错误。

ArrayList 实现了 Cloneable 接口,标识着它可以被复制。注意:ArrayList 里面的 clone() 复制其实是浅复制。

阅读全文 »
1 … 10 11 12 … 17
Java Geek Tech

Java Geek Tech

一群热爱 Java 的技术人

328 日志
117 分类
44 作者
RSS
GitHub 知乎
Links
  • 纯洁的微笑
© 2019 - 2023 Java Geek Tech
由 Jekyll 强力驱动
主题 - NexT.Mist