原创 數據庫併發引起的問題

 SQL的鎖機制 一. 爲什麼要引入鎖 多個用戶同時對數據庫的併發操作時會帶來以下數據不一致的問題: 丟失更新 A,B兩個用戶讀同一數據並進行修改,其中一個用戶的修改結果破壞了另一個修改的結果,比如訂票系統 髒讀 A用戶修改了數據,隨

原创 100億個數中尋找中位數

題目: 在一個大文件中有100億個32位整數,亂序排列,要求找出中位數;內存限制爲512M;請寫出算法設計思路; 基本分析: (1)中位數的定義:一個給定排序好的序列,奇數個的話,我們就取中間的一個;偶數個的話,我們一般取中間兩個數的平

原创 HTTP請求的基本過程

 HTTP通信機制是在一次完整的HTTP通信過程中,Web瀏覽器與Web服務器之間將完成下列7個步驟:  1. 建立TCP連接 在HTTP工作開始之前,Web瀏覽器首先要通過網絡與Web服務器建立連接,該連接是通過TCP來完成的,該協

原创 客戶端與服務器的數據表的同步問題

圖片來源參見水印。 文章參考http://a52071453.iteye.com/blog/1978498。 美團二面中面試官問了這樣的一個問題,在傳輸有限的情況下,如何保證多個客戶端與服務器保持的數據表的一致性? 其實解決的方法很簡單

原创 Java實現線性存儲的二叉樹

/** * 線性存儲的二叉樹 * * @author Administrator * */ public class LinearBinaryTree <T>{ //用來存儲數據的數組 private Object[]

原创 如何判斷二叉樹是否是結構性對稱的?

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">判斷二叉樹是否是結構性對稱的,其實思想是很簡單的

原创 Java整數轉換成字符

Java中提供了三種整數轉換成字符串的方式,大家都很熟悉: 1.  String s = String.valueOf(i);          2.  String s = Integer.toString(i);          3

原创 Java筆試題

 都是一些非常非常基礎的題,是我最近參加各大IT公司筆試後靠記憶記下來的,經過整理獻給與我一樣參加各大IT校園招聘的同學們,純考Java基礎功底,老手們就不用進來了,免得笑話我們這些未出校門的孩紙們,但是IT公司就喜歡考這些基礎的東西

原创 判斷兩棵二叉樹是否相等

題目描述: 給定兩棵二叉樹,寫一個函數來檢查他們是否相等。 注:兩棵二叉樹相等的定義是:他們的結構相同,而且相應位置上節點的值也想等。 class Node(){ int val; Node right; Node left;

原创 死鎖的產生及其避免

本文爲轉載用作自我學習,轉載請參考原文鏈接。 所謂死鎖: 是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱爲

原创 排序算法之冒泡算法

public class TestSort{/*** * 冒泡算法1* 實現大的數字往後冒* @param a* @return*/public  int[] bubbleSort_1(int a[]){

原创 兩種方式實現數組中負數在左,正數在右

一、實現原理是:兩個變量,一個用來記錄當前的遍歷點,一個用來記錄最左邊的負數在數組中的索引值。然後遍歷整個數組,遇到負數將其與負數後面的數進行交換。遍歷結束,即可實現負數在左,正數在右。 此種實現原理和實現都較爲簡單。 當正數負數交替排列

原创 排序算法之選擇排序

選擇排序是一種比較直觀也比較簡單的排序算法。 其原理是:用第i個元素和他後面的元素依次相比,將最小的放入i處,經過循環,可將小的依次選擇出來。 一下爲源代碼:         /**選擇排序算法* * @param a* @return*

原创 算法時間複雜度

此文爲轉載他人的文章,僅作爲自己學習的材料。 算法複雜度分爲時間複雜度和空間複雜度,一個好的算法應該具體執行時間短,所需空間少的特點。      隨着計算機硬件和軟件的提升,一個算法的執行時間是算不太精確的。只能依據統計方法對算法進

原创 排序算法之簡單插入算法

先記下來,後面再寫 /** * 簡單插入排序* @param a* @return*/public int[] insertSort(int a[]){for(int i=1;i<a.length;i++){int temp=a[i];