<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Growing_hacker的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Growing_hacker</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Growing_hacker]]></copyright><item><title><![CDATA[java：aqs实现自定义可重入锁]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/144032361</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/144032361</guid><author>Growing_hacker</author><pubDate>Mon, 25 Nov 2024 17:11:36 +0800</pubDate><description><![CDATA[【代码】java：aqs实现自定义可重入锁。]]></description><category></category></item><item><title><![CDATA[java：aqs实现自定义锁]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/144031528</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/144031528</guid><author>Growing_hacker</author><pubDate>Mon, 25 Nov 2024 17:06:05 +0800</pubDate><description><![CDATA[【代码】java：aqs实现自定义锁。]]></description><category></category></item><item><title><![CDATA[Java设计模式-工厂模式]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/126762741</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/126762741</guid><author>Growing_hacker</author><pubDate>Thu, 08 Sep 2022 14:19:03 +0800</pubDate><description><![CDATA[Java设计模式-工厂模式]]></description><category></category></item><item><title><![CDATA[Java设计模式-代理模式]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/124749610</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/124749610</guid><author>Growing_hacker</author><pubDate>Fri, 13 May 2022 13:24:03 +0800</pubDate><description><![CDATA[Java 代理分静态代理，动态代理，静态代理在运行前就已经生成代理类字节码，而动态代理是在运行期生成的代理类字节码

假设一个场景，手机制造商（委托类）找一个店面（代理类）销售手机

静态代理实现

定义手机接口


public interface Phone {

     void size();
     void color();

}

手机制造商（委托类）


public class Producer implements Phone{
    @Override
    public vo]]></description><category></category></item><item><title><![CDATA[Java 泛型的使用]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/124718754</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/124718754</guid><author>Growing_hacker</author><pubDate>Wed, 11 May 2022 21:21:22 +0800</pubDate><description><![CDATA[当代码逻辑不关注具体的数据类型时，只注重代码的逻辑的时候，可以考虑使用泛型。泛型可以很好的对类型参数化处理。

泛型的使用

泛型类


public class java_day01 &lt;T&gt; {
    
}


泛型接口


public interface java_day01 &lt;T&gt; {
    public T getData(T t);

}

// 实现类，指定具体参数类型
class java_day01Impl implements java_day01&lt;St]]></description><category></category></item><item><title><![CDATA[synchronized偏向锁、轻量锁、重量锁加锁原理]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/116203827</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/116203827</guid><author>Growing_hacker</author><pubDate>Tue, 27 Apr 2021 17:32:54 +0800</pubDate><description><![CDATA[synchronized对应c++执行逻辑

源码


    case got_monitors: {
      // continue locking now that we have a monitor to use
      // we expect to find newly allocated monitor at the "top" of the monitor stack.
      oop lockee = STACK_OBJECT(-1);
      VERIFY_OOP(loc]]></description><category></category></item><item><title><![CDATA[java 公平锁与非公平锁区别]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/115364089</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/115364089</guid><author>Growing_hacker</author><pubDate>Thu, 01 Apr 2021 07:56:50 +0800</pubDate><description><![CDATA[ReentrantLock默认为非公平锁，非公平锁比公平锁效率高



非公平锁抢锁源码



公平锁抢锁源码



区别一：源码对比，发现非公平锁先cas一次自旋抢锁，自旋抢锁失败，会执行acquire（1）

acquire方法源码



非公平锁tryAcquire主要执行方法



公平锁tryAcquire主要执行方法



区别二：源码对比，发现公平锁考虑AQS锁队列中等待的线程，无队列才进行cas自旋操作






...]]></description><category></category></item><item><title><![CDATA[intelli与github连接报错]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/115022427</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/115022427</guid><author>Growing_hacker</author><pubDate>Sat, 20 Mar 2021 10:07:56 +0800</pubDate><description><![CDATA[实现分享代码，通过github上传提交自己的代码


输入账户和密码出现报错，提示只能通过token的方式登录



登录自己的github账户，找到setting设置





通过用token登录即可。




]]></description><category></category></item><item><title><![CDATA[简单的ssm项目搭建]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/115015957</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/115015957</guid><author>Growing_hacker</author><pubDate>Fri, 19 Mar 2021 21:51:51 +0800</pubDate><description><![CDATA[mysql数据库中的数据，想通过web的页面展示，有多种方式，可以通过python的django，java的ssm，现在接触java多些，这章就利用ssm框架搭建一个web

首先准备一个mysql数据库



接着准备ssm框架，包含四个domain、dao、service、web 模块进行搭建



domain准备javabean接收数据数据，需要保证mysql字段与javabean字段名一样






package com.hacker.ssm;

import java.util.Date;.]]></description><category></category></item><item><title><![CDATA[java 项目采坑Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired....]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/114992580</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/114992580</guid><author>Growing_hacker</author><pubDate>Thu, 18 Mar 2021 22:36:34 +0800</pubDate><description><![CDATA[java的ssm项目采坑，ssm项目设计了多个maven模块包含domain、dao、service、web等四个模块

maven项目启动的时候就报错


Error creating bean with name 'StudentInfoController': Unsatisfied dependency expressed through field 'userService'; nested exception is org.springframework.beans.factory.NoSuch]]></description><category></category></item><item><title><![CDATA[java join源码分析]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113759470</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113759470</guid><author>Growing_hacker</author><pubDate>Mon, 08 Feb 2021 21:41:44 +0800</pubDate><description><![CDATA[子线程.join()，主线程会等子线程执行完再执行，上代码


package qqqcloud.cn.Threads.JoinFunction;

import java.util.ArrayList;
import java.util.List;

public class hacker_02_mutil_join {

    public static void main(String[] args) throws InterruptedException {
        List&lt;Thr]]></description><category></category></item><item><title><![CDATA[leetcode_day03_字母异位词分组]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113691678</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113691678</guid><author>Growing_hacker</author><pubDate>Fri, 05 Feb 2021 13:09:20 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/group-anagrams/


给定一个字符串数组，将字母异位词组合在一起。字母异位词指字母相同，但排列不同的字符串。

示例:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
[
 ["ate","eat","tea"],
 ["nat","tan"],
 ["bat"]
]
说明：

所有输入均为小写字母。
不考虑答案输出的顺序。


map的values()为list,...]]></description><category></category></item><item><title><![CDATA[leetcode_day03_有效的字母异为词(map)]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113625238</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113625238</guid><author>Growing_hacker</author><pubDate>Thu, 04 Feb 2021 10:01:54 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/valid-anagram/


给定两个字符串 s 和 t ，编写一个函数来判断 t 是否是 s 的字母异位词。

示例1:

输入: s = "anagram", t = "nagaram"
输出: true
示例 2:

输入: s = "rat", t = "car"
输出: false


方法


class Solution {
    public boolean isAnagram(String s, String t)..]]></description><category></category></item><item><title><![CDATA[leetcode_day03柱状图中最大的矩形（单调栈思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113464470</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113464470</guid><author>Growing_hacker</author><pubDate>Sun, 31 Jan 2021 11:59:08 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/largest-rectangle-in-histogram/


给定 n 个非负整数，用来表示柱状图中各个柱子的高度。每个柱子彼此相邻，且宽度为 1 。

求在该柱状图中，能够勾勒出来的矩形的最大面积。



以上是柱状图的示例，其中每个柱子的宽度为 1，给定的高度为[2,1,5,6,2,3]。



图中阴影部分为所能勾勒出的最大矩形面积，其面积为10个单位。



示例:

输入: [2,1,5,6,2,3]
输出: 10
...]]></description><category></category></item><item><title><![CDATA[leetcode_day03有效括号（栈最近相似思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113154297</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113154297</guid><author>Growing_hacker</author><pubDate>Tue, 26 Jan 2021 00:27:56 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/valid-parentheses/


给定一个只包括 '('，')'，'{'，'}'，'['，']'的字符串 s ，判断字符串是否有效。

有效字符串需满足：

左括号必须用相同类型的右括号闭合。
左括号必须以正确的顺序闭合。


示例 1：

输入：s = "()"
输出：true
示例2：

输入：s = "()[]{}"
输出：true
示例3：

输入：s = "(]"
输出：false
示例4：

输入：s = "(...]]></description><category></category></item><item><title><![CDATA[leetcode_day02反转链表（迭代思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113058227</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113058227</guid><author>Growing_hacker</author><pubDate>Sat, 23 Jan 2021 17:01:40 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/reverse-linked-list/


反转一个单链表。

示例:


输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL
输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL


方法


class Solution {
    public ListNode reverseList(ListNode head) {
        ListNode prev=null;   //.]]></description><category></category></item><item><title><![CDATA[leetcode_day02旋转数组（反转思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/113054209</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/113054209</guid><author>Growing_hacker</author><pubDate>Sat, 23 Jan 2021 15:54:59 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/rotate-array/


给定一个数组，将数组中的元素向右移动k个位置，其中k是非负数。



进阶：

尽可能想出更多的解决方案，至少有三种不同的方法可以解决这个问题。
你可以使用空间复杂度为O(1) 的原地算法解决这个问题吗？


示例 1:

输入: nums = [1,2,3,4,5,6,7], k = 3
输出: [5,6,7,1,2,3,4]
解释:
向右旋转 1 步: [7,1,2,3,4,5,6]
向...]]></description><category></category></item><item><title><![CDATA[leetcode_day01_三数之和（双指针思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/112861547</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/112861547</guid><author>Growing_hacker</author><pubDate>Thu, 21 Jan 2021 13:34:59 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/3sum/

方法


classSolution{

publicList&lt;List&lt;Integer&gt;&gt;threeSum(int[]nums){

List&lt;List&lt;Integer&gt;&gt;list=newArrayList&lt;&gt;();

//if((nums.length==3)&amp;&amp;(nums[0]+nums[1...]]></description><category></category></item><item><title><![CDATA[leetcode_day01_爬楼梯（枚举思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/112757314</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/112757314</guid><author>Growing_hacker</author><pubDate>Sun, 17 Jan 2021 20:37:06 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/climbing-stairs/


假设你正在爬楼梯。需要 n阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢？

注意：给定 n 是一个正整数。

示例 1：

输入： 2
输出： 2
解释： 有两种方法可以爬到楼顶。
1. 1 阶 + 1 阶
2. 2 阶
示例 2：

输入： 3
输出： 3
解释： 有三种方法可以爬到楼顶。
1. 1 阶 + 1 阶 + 1 阶
2. 1 阶 + ...]]></description><category></category></item><item><title><![CDATA[leetcode_day01_盛最多的水（双指针思想）]]></title><link>https://blog.youkuaiyun.com/Growing_hacker/article/details/112756840</link><guid>https://blog.youkuaiyun.com/Growing_hacker/article/details/112756840</guid><author>Growing_hacker</author><pubDate>Sun, 17 Jan 2021 20:09:37 +0800</pubDate><description><![CDATA[https://leetcode-cn.com/problems/container-with-most-water/


给你 n 个非负整数 a1，a2，...，an，每个数代表坐标中的一个点(i,ai) 。在坐标内画 n 条垂直线，垂直线 i的两个端点分别为(i,ai) 和 (i, 0) 。找出其中的两条线，使得它们与x轴共同构成的容器可以容纳最多的水。

说明：你不能倾斜容器。

示例 1：

输入：[1,8,6,2,5,4,8,3,7]
输出：49
解释：图中垂直线代表输入数组 ...]]></description><category></category></item></channel></rss>