原创 awk功能學習

1:awk找出某列爲空的行 awk -F" " '$2<0' file 2: awk算出某列的和 awk -F" " '{sum+=$2}END{print sum}' 3: awk替換特定字符串 awk '{gsub("_LQL"

原创 Java 原子操作的原理和問題

對java併發機制的底層實現原理學習了一下,有一些淺薄的收益。 第一瞭解的是:java對象在JVM中有一個java對象頭的概念,synchronized用的鎖的信息就是存在java對象頭裏面,根據其中存儲的markword的線程是否指向自

原创 return在try catch finally中的執行順序(最通俗易懂的總結)

1、不管有木有出現異常,finally塊中代碼都會執行; 2、當try和catch中有return時,finally仍然會執行; 3、finally是在return後面的表達式運算後執行的(此時並沒有返回運算後的值,而是先把要返回的值保

原创 volatile 的學習要點

第一個重點:要了解,多線程之間的通信機制有兩種,共享內存和消息傳遞。另外除了主存之外,每一個線程都有一個私有的本地內存空間(Local memory)。本地內存中存儲了該線程以讀/寫共享變量的副本。其實本地內存是JMM的一個抽象概念,並

原创 帶你認識JAVA的序列化Serializable接口

我們知道在JAVA類中,很多類都實現了Serializable類的方法,他的意思是將這個類在運行的時候進行序列化,這個接口類的註解是這麼寫的, / * @author  unascribed  * @see java.io.Objec

原创 死鎖和阻塞的關係

在看併發編程的第一章的時候舉出了一個死鎖了的例子,感覺特別棒,於是就聯想到了阻塞,我們知道在JAVA環境中,線程Thread有如下五個狀態:(當然有人要說是七個狀態,這個以後有機會再說) 1,新建狀態 2,就緒狀態 3,運行狀態

原创 Java 死鎖的例子

《併發的挑戰》學習標註 多線程是我覺得初入JAVA中的一個難點,之前一直知道線程有阻塞死鎖的狀態,但是很抽象,但是真的讓我自己寫一個死鎖的例子,我還真的有點下筆難的感覺,今天看到這本書的第一章,就學習到了一個簡單的線程死鎖例子,在這裏分享

原创 happens-before的規則

happens-before是JMM(java main memory)最核心的概念,在JMM中,如果一個操作執行的結果需要對另一個操作可見,那麼這兩個操作之間必須要存在happens-before關係。這裏提到的兩個操作可以是一個線程內

原创 synchronized實現同步的三種用法

1:對於普通同步方法,鎖的是當前實例的對象。 意思是 class A { synchronized test(){ system.out.print("lock object"); } } A a = new A();A a1

原创 Exception獲取getMessage()爲空

e.getMessage(); 只會獲得具體的異常名稱. 比如說NullPoint 空指針,就告訴你說是空指針,使用是因爲可以使日誌簡潔。 e.printStackTrace();(e.getStackTrace())會打出詳細異常,異

原创 終於決定對自己學的東西做一個總結

從自己上了研究生開始,就一直在做項目,每一段時間都有很多收穫,但是由於沒有整理,導致最後知識點混亂,也忘記了好多東西,於是決定把學習的東西好好整理整理,方便自己學習。

原创 api查座標

api查座標 http://api.map.baidu.com/geocoder/v2/?output=json&ak=1XjLLEhZhQNUzd93EjU5nOGQ&address=add

原创 python起一個上傳文件的東西

# SimpleHTTPServerWithUpload.py # This code tweaked from https://github.com/tualatrix/tools/blob/master/SimpleHTTPServ

原创 python 自己搭建一個小型服務器

# !/usr/bin/python # -*- coding: UTF-8 -*- import os # Python的標準庫中的os模塊包含普遍的操作系統功能 import re # 引入正則表達式對象 import url

原创 linux,shell,python小貼士

python: 1:轉json格式後,如果發現在當value是漢字的時候出現獲取value失敗的情況,例如'ascii' codec can't encode characters in position ,TypeError: stri