Fork me on GitHub

JUC-14-JMM&CAS&各种锁实战

JUC-14-JMM&CAS&各种锁实战

1. JMM 简介

mark

  • java内存模型(JMM)

  • JMM定义了线程和主内存之间的抽象关系:线程之间的共享变量存储在主内存(Main Memory)中,每个线程都有一个私有的本地内存(Local Memory),本地内存中存储了该线程以读/写共享变量的副本。本地内存是JMM的一个抽象概念,并不真实存在。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。

关于JMM的一些同步约定:

  • 线程解锁前,必须把共享变量立刻刷回主内存

  • 线程加锁前,必须读取主内存中最新的值到工作内存中

  • 加锁和解锁是同一把锁。

阅读更多...

Leetcode-412-FizzBuzz

Leecode-412-Fizz Buzz

思路:

题目描述

写一个程序,输出从 1 到 n 数字的字符串表示。

  1. 如果 n 是3的倍数,输出“Fizz”;

  2. 如果 n 是5的倍数,输出“Buzz”;

  3. 如果 n 同时是3和5的倍数,输出 “FizzBuzz”。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
输入:n = 15,

返回:
[
"1",
"2",
"Fizz",
"4",
"Buzz",
"Fizz",
"7",
"8",
"Fizz",
"Buzz",
"11",
"Fizz",
"13",
"14",
"FizzBuzz"
]
阅读更多...

Leetcode-213-打家劫舍II

Leecode-213-House Robber II

思路:动态规划

题目描述:

你是一个专业的小偷,计划偷窃沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都围成一圈,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。

1
2
3
输入: [2,3,2]
输出: 3
解释: 你不能先偷窃 1 号房屋(金额 = 2),然后偷窃 3 号房屋(金额 = 2), 因为他们是相邻的。
1
2
3
4
输入: [1,2,3,1]
输出: 4
解释: 你可以先偷窃 1 号房屋(金额 = 1),然后偷窃 3 号房屋(金额 = 3)。
  偷窃到的最高金额 = 1 + 3 = 4 。
阅读更多...

Spring-01-概述及IOC理论推导

Spring-01-概述及IOC理论推导

1. 简介

mark

  • 2002年,Rod Jahnson首次推出了Spring框架雏形interface21框架。

  • 2004年3月24日,Spring框架以interface21框架为基础,经过重新设计,发布了1.0正式版。

  • 很难想象Rod Johnson的学历 , 他是悉尼大学的博士,然而他的专业不是计算机,而是音乐学。

官网 : http://spring.io/

官方下载地址 : https://repo.spring.io/libs-release-local/org/springframework/spring/

GitHub : https://github.com/spring-projects

重要:

Spring 中文文档地址: https://www.docs4dev.com/docs/zh/spring-framework/5.1.3.RELEASE/reference/overview.html#overview-feedback

Spring 英文文档地址https://docs.spring.io/spring-framework/docs/current/reference/html/core.html#beans

阅读更多...

IO-02-流的分类

IO-流的分类

1. 输入流和输出流

  1. 根据流向分为输入流和输出流

注意输入流和输出流是相对于程序而言的。

  • 输出:把程序(内存)中的内容输出到磁盘等存储设备中。

mark

  • 输入:读取外部数据(磁盘等存储设备)到程序(内存)中。

mark

阅读更多...
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信