自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring初步认识

Spring :经常说的Spring 一般都是说 Spring FrameworkSpring 包含很多框架:3.Core Container(核心容器)Beans模块:提供了BeanFactory,是工厂模式的经典实现,Spring 将管理对象称为Bean。·Context上下文模块:建立在核心和Beans模块的基础之上,它是访问定义和配置任何对象的媒介。ApplicationContext接口是上下文模块的焦点。. Core核心模块:提供了Spring 框架的基本组成部分,包括loC和DI

2020-08-11 19:57:01 234

原创 网络协议

一、网络协议分层:**应用层:**每个应用程序都可以定义自己的应用层协议。协议既不神秘,也不复杂,完全可以自己约定一套协议。**表示层:**针对数据类型来进行区分,采取不同的处理方式。**会话层:**主要就是用来识别用户的身份。**传输层:**端到端的传输,知道起点和终点,其他就不管了。例如:淘宝买卖东西。作为一个买家,只需要下单就行. (填写收件人地址,收件人姓名)淘宝卖家,只需要发货就行(发件人地址和发件人姓名)买家和卖家都只是关注两端的地址即可.不关注快递中间的路径和流程.**网

2020-08-04 21:40:14 631

原创 JVM之GC

接 JVM 那条七.分代回收(垃圾分类)划分依据:根据对象的年龄(经过GC扫描的轮次)把堆划分成新生代:伊甸区+生存区*2老年代一个对象的一生:a)诞生于伊甸区b)经过- -轮GC,如果存活,就通过复制算法,进入生存区c)在生存区中经过GC后存活,还是通过复制算法,进入生存区2(每次经过GC扫描后,生存的对象都要被复制到另外-个生存d)在生存区中活过一定的轮次之后,对象将被放到老年代(认为该对象生存时间会较长,就不再继续频繁扫描了)e)老年代的对象也是需要进行GC的,扫描轮次没有新生代

2020-08-03 16:46:18 268

原创 多线程进阶之CAS等

(接我之前的那条)二、CAS(compare and swap)操作系统/硬件设备 赋予应用程序的一种原子操作的力量源泉之一。判断某个变量的值,如果这个值和你猜的值一样,就交换值。如果这个值猜的不一样就无事发生。(硬件实现的原子操作)。CAS 的典型应用场景:无锁编程。保证线程安全。加锁操作开销比较大,及时 Sychronized 内置了很多的优化策略。还是比较大。要想要更加灵活,更加高效的完成,就可以使用 CAS。例如,想要完成一个线程安全的 i++ 这样操作:void add(){//

2020-08-03 11:34:31 847

原创 JVM面向对象学习

JVM 面向面试学习一、JVM 内存区域划分实际上JVM 实现不一定真的分成这两个栈(图中红线圈出的两个)(局部变量存在栈上,方法之间的调用关系也是保存在栈上)比如说:new 底下对象, .class 加载到方法区中。被同一个进程中的多个线程间共享。比较常见的问题:1.如何理解基础数据类型和引用数据类型。基础数据类型就是直接保存了值。引用类型内部存储的是一个地址(整数),这个地址有事对应到堆上的一块内存。基础类型的访问:报名的时候直接找到了班主任。直接报名即可。引用类型的访问:报名

2020-07-29 16:06:31 196

原创 多线程进阶之各种锁的策略

多线程进阶:多线程初阶,主要讲了一些多线程的基础原理和一些编程方法(并发编程)。*多线程进阶(面向面试学习)一、各种锁的策略。二、CAS机制【比较实用】三、java.util.concurrent.的一些实用的类。四、sychronized实现原理和锁优化策略。五、ConcurrentHashMap【面试考点】。一、各种锁的策略。1.乐观锁 vs 悲观锁广义概念:锁的两种不同的实现思路。乐观的人会认为:世界大概率不会出问题。悲观的人会认为:世界大概率会出问题。例:当两个人在野外被困

2020-07-28 20:12:27 224

原创 网络日志简介

#Software: Microsoft Internet Information Services 6.0#Version: 1.0#Date: 2020-06-10 01:14:22#Fields: time cs-method cs-uri-stem c-ip sc-status sc-bytes cs-bytes01:14:21 GET /show2.asp 203.208.60.210 200 15046 287作为新手,看

2020-06-11 17:40:39 1447

原创 线程中断方法。

/* *@Created with IntelliJ IDEA.@Description: 中断:把一个正在执行的线程,紧急停止下来,典型的两种实现方法: 一、通过一个标记位的形式来进行中断。 标记位的终止方法比较温和,必须要每次线程内部主动检查的时候,才会触发终止操作。 二、借助 interupt 方法进行中断。 这个方法并不是直接把线程中断掉,而是让线程内部抛出一个InterruptException异常, 至于代码中如何处理这个异常,就

2020-06-05 21:42:48 557

原创 Thread的常见方法

public class ThreadDemo5 {public static void main(String[] args) throws InterruptedException { Thread thread = new Thread("新线程!") { @Override public void run() { for (int i = 0; i < 10; i++) { System.out.

2020-05-31 21:26:16 211

原创 并发式执行和串行执行的区别

完成一个简单的任务:让代码分别针对 a 和 b 两个整数,自增100亿次。比较串行和并发执行哪个效率更高。并发执行 相对于 串行 时间节约 44% 左右。并没有有的人一开始想的 50%,是因为线程的创建和销毁以及线程的调度都是有开销的。public class ThreadDemo2 {private static long conunt = 100_0000_0000L;public static void main(String[] args) { concurency(); /

2020-05-30 10:19:06 751

原创 线程

多线程的意义:能够同时进行。并发式执行:能够让程序执行效率更高。public class ThreadDemo1 {// 通过代码结果能看到,同时存在多个线程的时候,相互之间的调度顺序是无法确定的。static class MyThread extends Thread { @Override public void run() { // 线程的入口方法,当线程启动后,就会执行到 run 方法中的逻辑 // 这个方法不需要手动调用,由 JVM 自动执

2020-05-30 10:04:13 124

原创 线程和进程之间的联系

大部分笔记本和服务器,大部分都遵守冯诺依曼体系。我现在对计算机的认知,都是由一个个硬件组件组成的。输入:键盘,鼠标,扫描,触写板等等;中央处理器(CPU):含有运算器和控制器等等;输出:显示器,打印机等等。关于冯诺依曼:存储器指的是内存不考虑缓存情况,CPU能且只能对内存进行读写,不能访问输入和输出设备。输入设备和输出设备要输入或者输出数据,只能通过写入内存或者存入内存中读取。所有的设备都只能直接和内存打交道。操作系统(OS):任何计算机系统都包含一个基本的程序集合,即操作系统。而.

2020-05-16 11:41:13 130

原创 实现一个通用栈。(泛型)

/* *@Created with IntelliJ IDEA.@Description: 泛型 (Generic) 实现一个通用栈。想法1:数组--》Object想法2:使用java的泛型@Author:WangGuiyang@Date:2020/4/5 9:11*////**// * : 只是一个占位符,标识当前类是一个泛型类 可以有多...

2020-04-09 15:19:35 250

原创 给定一个二叉树,判断它是否是高度平衡的二叉树。

/**Definition for a binary tree node.public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode(int x) { val = x; }}*/class Solution {public int isBalancedChild(T...

2020-03-30 21:51:12 366

原创 算法,找出数组中最小的 K 个数,以任意顺序返回 K 个数

import java.util.PriorityQueue;public class smallestK {/*** 设计一个算法,找出数组中最小的 K 个数,以任意顺序返回 K 个数均可* 输入: arr = [1,3,5,7,2,4,6,8]* 输出: [1,2,3,4]*/public static int[] smalle...

2020-03-29 21:32:14 483

原创 利用前序和中序遍历构造一个二叉树。

/**class TreeNode {public char value;public TreeNode left; // 节点地址public TreeNode right;// 调用它的构造方法public TreeNode(char value){ this.value = value; this.left =...

2020-03-27 21:40:12 106

原创 查找val所在的节点,没有找到就返回null,一但找到,立即返回,不需要继续在其他位置查找

/*** 查找 val 所在结点,没有找到返回 null* 按照 根 -> 左子树 -> 右子树的顺序进行查找* 一但找到,立即返回,不需要继续在其他位置查找* @param root* @param val* @return*/class TreeNode {public char value;public TreeNode left; /...

2020-03-26 15:48:11 156

原创 二叉树的层序遍历

import java.util.*;class TreeNode {public char value;public TreeNode left; // 节点地址public TreeNode right;// 调用它的构造方法public TreeNode(char value){ this.value = value; this.left = nu...

2020-03-24 21:38:09 132

原创 二叉树的中序和后序遍历

import java.util.ArrayList;import java.util.List;/* *@Created with IntelliJ IDEA.@Description: 二叉树中、后序遍历@Author:WangGuiyang@Date:2020/3/20 19:57*//**public class TreeNode {int val;T...

2020-03-22 17:20:13 124

原创 二叉树的前序遍历

import java.util.ArrayList;import java.util.List;/* *@Created with IntelliJ IDEA.@Description二叉树的前、中、后序遍历 第一种方法@Author:WangGuiyang@Date:2020/3/20 19:57*//**public class TreeNode {int...

2020-03-21 13:52:12 114

原创 力扣 690 :员工的重要性 输入: [[1, 5, [2, 3]], [2, 3, []], [3, 3, []]], 1 输出: 11

class Employee {// It’s the unique id of each node;// unique id of this employeepublic int id;// the importance value of this employeepublic int importance;// the id of direct subordinatespubli...

2020-03-19 20:04:38 232 1

原创 删除第一个字符串当中出现的第二个字符串的字符。

public class Main {public static String delete(String a, String b) { StringBuffer str = new StringBuffer(); char[] b1 = new char[256]; for (int i = 0; i < b.length(); i++) { b1...

2020-03-12 18:48:41 232

原创 普通,静态,构造代码块的输出顺序

public class Test {public Test(){System.out.println(“1”);}{System.out.println(“2”);}static {System.out.println(“3”);}public static void main(String[] args) { System.out.println("4"); ...

2020-03-09 19:25:36 116

原创 因为才开始学习这方面的知识,所以我先做一些简单的东西。今天我的目标是做一个简单的冒泡排序。

import java.util.Arrays;public class Array {public static void main(String[] args) { int[] arr1 = {1,5,3,2,4}; bubbleSort(arr1); System.out.println(arr2Str(arr1)); } // 冒泡排序pub...

2020-03-07 19:11:46 101

原创 第一次用csdn来写关于Java的代码,之前一直都闲置在那,我是一个代码小白,有什么不对的地方,希望各位大佬不吝赐教。今天我写的题目是:翻转字符串

输入一行字符串,代表翻转后的字符串。下面是我自己在idea上根据别人的指导敲的代码部分。import java.util.Scanner;public class Main {public static String reverse(String str,int left,int right){ char[] value = str.toCharArray(); while...

2020-03-06 18:20:58 177

空空如也

空空如也

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

TA关注的人

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