原创 SQL字符串匹配和運算

匹配 百分號(%):匹配任意子串 select dept_name from department where building like ‘%Watson’; (或前綴匹配Watson%) 下劃線(_):匹配任意單個字符

原创 java內存模型淺談

併發編程模型的分類 命令式編程中,線程之間通信方式有兩種:共享內存和消息傳遞。 在共享內存的併發模型裏,線程之間共享程序的公共狀態,線程之間通過寫-讀內存中的公共狀態來隱式進行通信。 在消息傳遞的併發模型裏,線程之間沒有公共

原创 leetcode - 189. 旋轉數組

/** * 旋轉數組:將數組的後 k 位數移至頭部,前 length - k 位數移至尾部 * 要求使用原地算法,即不使用額外的空間 * @param nums 數組 * @param k 旋轉的個數 */

原创 字符串的四則運算表達式

public static void main(String[] args) { // 支持括號 小數 負數 String statement = "-10/(4.5+5.5)*(-4-6+20)/-2";

原创 Java併發核心淺談(二)

回顧 在上一篇 Java併發核心淺談 我們大概瞭解到了Lock和synchronized的共同點,再簡單總結下: Lock主要是自定義一個 counter,從而利用CAS對其實現原子操作,而synchronized是c++ ho

原创 Java中各種對象的各種實例化方式

Java 中萬物皆對象,Linux 中一切皆文件。 簡單的說下對象的實例化過程: 首先我們需要有個意識,就是創建一個類的實例化對象,內存中必須要加載了這個類 所以,不論是 new 還是反射或是 Unsafe.allocateIn

原创 Java併發核心淺談

Java併發的核心就是 j.u.c 包,而 j.u.c 的核心是AbstractQueuedSynchronizer抽象隊列同步器,簡稱 AQS,一些鎖啊!信號量啊!循環屏障啊!都是基於AQS。而 AQS 又是基於Unsafe的一

原创 談談我對數據庫三範式的字面理解

今天看了看《數據結構系統原理》(黃靖 主編)這本書(備考自考,不然以我的品味,直接豆瓣9.0以上,哈哈哈) 首先看下書上給出的定義: 第一範式(1NF):設 R 爲任一給定關係,若 R 中的每個列與行的交點處的取值都是不可再分的

原创 leetcode-cn 刪除排序數組中的重複項

題目如圖: 比較簡單,代碼如下: private static int removeDuplicates(int[] nums) { int length = nums.length; int headIndex =

原创 leetcode-cn 實現strStr()

題目如圖: 其實這道題相當於讓我們自己手寫indexOf(),平時用慣了api,手寫起來不是很容易,我自己就換了好幾種寫法,代碼如下: private static int strStr(String haystack, St

原创 查找字符數組中出現次數最多的字符

昨天杭州大搜車面試,面試官出了一道字符算法題,如下: 給定一個字符數組,例如char[] chars = { 'a', 'b', 'b', 'b', 'b', 'c', 'a', 'a', 'a'}; 找出數組中出現次數最多的字符

原创 leetcode-cn 迴文數判斷

題目描述如圖: 解法基本分爲兩類,一類是轉成字符數組,然後逐個比較左邊和右邊的字符,或者是轉成字符串,然後反轉,再進行比較,其本質都是單個字符的比較,大家都能想到,就不寫了。 另一類是直接對數字進行操作,leetcode上有人例

原创 SQL多表查詢

SQL 提供了JOIN關鍵字來連接多張表的查詢(即連接的是SELECT結果集)基本分爲以下幾種: 內連接:JOIN / INNER JOIN,是最爲常用的一種連接,其效果是隻返回條件匹配的那條數據 等值連接:ON 子句中使用

原创 數據庫的完整性約束

完整性約束條件的作用對象: 列級約束(針對字段,key) 主要針對列的類型,取值範圍,精度等約束 對空值的約束。規定某個字段是否爲空 對取值範圍的約束。例如,學生成績的字段規定爲 0 - 100 數據類型的約束。包括數據類型,

原创 視圖與索引

視圖 爲什麼需要視圖 有時候沒有必要向用戶展示完整的表的模型(所有字段信息) 表中某些涉及安全,隱私或權限的字段需要對用戶隱藏 綜上,視圖安全及易於使用 什麼是視圖 SQL 允許通過查詢來定義“虛關係”(又稱作虛表,並不