發表文章

目前顯示的是 4月, 2018的文章

Magic Number_咖啡寶貝???_0xCAFEBABE

圖片
最近由於在研究如何去撰寫Trigger avoid without where-clause 使用 Xmind 繪製 針對一些改善方案要去研究如何去寫這段防範 Trigger 說實在的  根本沒捨麼碰過!!!! 所以算是一項全新挑戰 爬到了 Enforce Where clause on every update statement https://www.sqlservercentral.com/Forums/Topic1076396-145-1.aspx 這篇英文文章 下方有一位十分英明的大大Gianluca Sartori 寫的一段SQL 剛好是覺得可以派的上用場的 只不過....... 只能說 程度不太夠  還真不太能知道Gianluca Sartori大大在寫捨麼 勉強可以知道一些判斷邏輯、流程和變數使用 只不過突然看到一個感覺有點詭異的數字內容 0xCAFEBABE(「cafe babe」) 這個 字面直翻的  "咖啡寶貝"  到底是捨麼????? T-SQL 區塊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 CREATE TRIGGER MyTrigger ON MyTable FOR INSERT , DELETE , UPDATE AS BEGIN SET NOCOUNT ON ; DECLARE @ program_name nvarchar( 128 ) SELECT @ program_name = program_name FROM sys.dm_exec_sessions WHERE session_id = @@ spid -- Is it SSMS? IF @ program_name LIKE '%Management%Studio%' BEGIN IF CONTEXT_INFO() IS NULL OR CONTEXT

JAVA_介面(Interface)_上

圖片
介面一詞到底要如何去瞭解 事實上於日常生活中我們有很多 具體東西 已經知道可以用 Class的觀念 去看待 但是有些事務實際實作上各自都不同 是比較不能很具體、明確地去實作出一套流程、如何具體實作等等!!!! 也因此介面 很抽象 更不能實體化 預設的存取修飾為public 、 abstract 此時就會透過"介面" 來去定義 介面和抽象類別有點像 只定義方法但 不實作 差別在於抽象類別中也可能包含實作過的方法成員 還有介面中不可定義任一屬性,除非是一種常數(不可更改)。 需要用final去修飾 介面是 被類別實作 介面 可被介面繼承、 可去多重繼承(繼承多個父類別) 且凡是 定義於介面中所有方法成員都是抽象的  因此也不用特定用abstract做修飾描述 有去實作(implements) interface的物件必須要去實作其中所定義的方法 介面 事實上就是 一套規格標準的定義 JAVA中 interface中的方法存取權限都會是public公開的 主要就是要利於其他類去實作 所以可以省略abstract 和 public 修飾 介面定義 interface InterfaceName { [ public ][ static ][ final ] varProperty ; [ public ][ abstract ] method: } 介面實作語法如下 class ClassName implements InterfaceName , InterfaceName2,.... { ... } 可將其裡解為 使用 介面 InterfaceName 來打造 類別 ClassName 介面  可以解釋為 一種身分資格(抽象概念) 介面實作則可想成  想獲取就必須去付出一些證照考取的準備過程 那每個人都有各自不同的準備方法 舉例而言 我想成為某一領域的專家(JAVA 專家 或是 Linux 專家) 就需要去考過某張認證 有人是去透過做考古題、有人是透過做中學 每個人 去實作的方式皆各有不同 有人只想獲取一個資格 有人則想同時獲取兩個資格 /* * To change this

JAVA物件導向_封裝_繼承_抽象類別_多型的概念

圖片
在物件導向程式設計當中 會探討到所謂  「多形」的概念 那一般會和抽象類別一起探討 其實每一天的任務做的事情就牽扯到這些物件導向設計的觀念 可以用下面的例子來做簡易示範 前人工程師們很辛苦的設計出如下架構 今天若我們想要去滿足使用者輸入特定關鍵字來對應計算出不同形狀的面積 此時我們可以怎麼去做開發前的規劃呢??? 假設user可能會輸入  三角形、正方形、圓形等等的時候 各有各自不同面積計算的公式和對應傳入的參數 所有的形狀都有 計算面積的機制!!!!!!!! 藉此我們創建一個抽象類別命名為 Shape 抽象類別包含以下幾個特徵: 1.無法定義明確細部動作的類別 2.無法產生物件實體 3.包含抽象方法(不具實作細節的方法)的類別 4.以其作為父類繼承的子類必須實作其抽象方法 由下方的UML 進行程式規格設計撰寫 使用staruml 繪製 Shape 抽象類別 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package shape; //無法定義明確細部動作的類別,所以也無法產生物件實體 //包含抽象方法的類別 /** * * @author chous */ public abstract class Shape { protected double area; public abstract void calcArea (); public double getArea (){ return area; } public void printArea (){

JAVA_String、StringBuffer、StringBuilder_三者差異與記憶體內部運行機制介紹_雙等號與equals差別

圖片
【結論】 效能上 StringBulder(無Thread-Safe) 快於 StringBuffer(有Thread-Safe) 快於 String(會於內部轉為StringBuffer進行較多記憶體運算) 當你在做一些純粹針對 值或內容比對是否一樣時 請愛用 .equals() 盡量不要用雙等號 雙等號 會多 判斷是否參照到相同物件 【細部實作過程推導】 日常JAVA開發工作中最常碰到的就是我們所謂的 字串的相關處裡 這次要先來介紹關於 String 相關物件的運作差異 ============================================================= 1. String 2. StringBuffer 3. StringBuilder ============================================================= 1. String 宣告寫法 在一般String 宣告時 多數JAVA程式設計師 會直接用來作為變數指派 在JAVA 官方API 文件上 可以查到 其實它有許多建構子的多載 這邊先來看一段作為一般變數時指派內部運作細節 code 區塊 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package stringtest1; /** * * @author chous */ public class StringTest1 { /** * @param args the command line arguments