原创 簡單而有趣的算法-洗牌算法

背景: 我們從n個不重複的數字中中取出m個不能重複的數字。 洗牌算法理念: 我們把n個數打亂,然後從從前到後取出m個數,就能達到我們想要的效果。 洗牌算法也大致分爲三類,抽牌,換牌,插排 抽牌: Fisher–Yates shuffle 

原创 微信小程序picket綁定數組對象

微信官方的picket只寫了那些數組裏面就是逐條信息的類型,但是沒有裏面綁定的是對象的類型,所以發佈一個,希望有用的可以拿走 單列表 首先是js 第一個是數據內容如此 productList: [ {

原创 幾種設計模式的作用及實現

工廠 工廠模式主要是爲了解耦,A類想要調用B類,但是實例化B對象比較複雜,所以我們就把B對象的創建放到工廠裏面統一管理。由於B對象的創建已經統一了起來,所以即使業務邏輯發生變化,我們也只需要修改工廠類,而不需要尋找每個創建B對象的地方去修

原创 TCP與UDP

TCP: 是一種面向連接的,可靠的,基於字節流的傳輸層通信協議。 首先,我們要知道,網絡時不可靠的,超時,丟失等情況都很有可能發生,所以爲了保證數據的完整性,正確性,TCP是優選的。 那麼TCP到底有什麼優點,所以能保證我們的數據傳輸呢?

原创 什麼是Redis緩存穿透/雪崩/擊穿

緩存穿透 緩存穿透是指緩存和數據庫中都沒有的數據,而用戶不斷髮起請求,如發起爲id爲“-1”的數據或id爲特別大不存在的數據。這時的用戶很可能是攻擊者,攻擊會導致數據庫壓力過大。 緩存雪崩 緩存雪崩,是指在某一個時間段,緩存集中過期失效。

原创 java項目中如何使用mysql行鎖

mysql中的行鎖,分爲兩種:共享鎖,排它鎖; 共享鎖允許事物讀一行記錄,不允許任何線程對該行記錄進行修改。 排他鎖允許當前事物刪除或更新一行記錄,其他線程不能操作該記錄。 共享鎖: SELECT * FROM TABLE LOCK IN

原创 redis學習之windows搭建

最近面試才發現自己忽視和Redis的重要性,所以從頭來開始好好學習一下redis。 首先我們需要下載:下載地址 下載解壓後我們會得到這樣一個結構: 接下來,啓動它:   redis-server.exe 這個時候我們已經吧服務端啓動了

原创 java線程的生命週期及創建方式

線程,一直都是非常基礎且重要的知識點,因爲,在多線程下,什麼都可能發生。 線程生命週期 線程是一個動態執行到過程,從出生,到死亡。 New(創建,初始化狀態) Runnable(可運行/運行狀態) Blocked(阻塞狀態) Waiti

原创 排序算法

冒泡排序 最基本的排序算法,依次比較相鄰節點大小,比我大(或者小),則交換位置。這個算法的名字由來是因爲越大的元素會經由交換慢慢“浮”到數列的頂端(升序或降序排列),就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,故名“冒泡排序”。

原创 java反射獲取對象初始化以及未初始化的方式

Class獲取的四種方式以及是否初始化 沒有初始化的: Class class1 = xxxClass.class; Class class1 = xxxClassLoader.load("包類名"); 完成初始化的 Class c

原创 Mysql數據庫調優

mysql由於他的開源以及存儲引擎的優點,已經收到了衆多開發人員的喜愛,所以在面試過程中,mysql調優也是面試提問機率非常高的,這篇文章就讓我們來聊聊mysql調優都有哪幾種方式。 1、存儲引擎: 首先,我們可以選擇適合的存儲引擎,例

原创 線程啓動時jvm運行時數據區都有什麼會隨之啓動

程序計數器 虛擬機棧 本地方法棧 程序計數器,不需要多考慮,很正常,因爲我們需要知道我們線程走到那步了 虛擬機棧,這個線程執行的內存,肯定是必須的啦 那麼本地方法棧,爲什麼回啓動呢,我之前對本地方法棧的理解,就是本地方法棧就是一個執行本地

原创 簡單聊聊分佈式鎖的如何實現

1、ZK實現 我們可以通過ZK的臨時順序節點配合watch來實現我們的分佈式鎖 2、redis實現 我們可以通過使用setnx來獲取鎖,如果設置成功,代表當前線程獲取到了鎖(setnx:指定的 key 不存在時,爲 key 設置指定的值,

原创 JS關閉微信瀏覽器兼容蘋果安卓

<script> setTimeout(function(){ //關閉安卓系統 document.addEventListener('WeixinJSBridgeReady', function(){

原创 聊聊CAS與AQS

CAS和AQS說白了就是進行線程加鎖的操作,只是實現方式不同罷了,今天就來聊聊他們都是什麼神仙 CAS CAS,又被成爲無鎖化,好像聽起來有點意思,其實他就是獲取內存裏面的最最新值,如果這個值等於我們的預期值,就把我們的期望值放入內存,如