原创 java:抽象類與接口

接口和內部類爲我們提供了一種將接口與實現分離的更加結構化的方法。        抽象類與接口是java語言中對抽象概念進行定義的兩種機制,正是由於他們的存在才賦予java強大的面向對象的能力。他們兩者之間對抽象概念的支持有很大的相

原创 《java編程思想系列6》 接口

一、抽象類和抽象方法 抽象方法:僅有聲明而沒有方法體 abstract void f(); 包含抽象方法的類叫做抽象類。如果一個類包含一個或者多個抽象方法,該類必須被限定爲抽象的。(否則編譯器就會報錯) 如果從一個抽象類繼承,並想

原创 求1+2+…+n,要求不能使用乘除法等

題目:求1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。 解法一:巧用遞歸 解法二:利用構造函數求解 class Temp{public:     

原创 《java編程思想系列之9》 類型信息

java是如何讓我們在運行時候識別對象和類的信息的? 1)傳統的RTTI:編譯時候就已經知道了所有的類型 2)反射機制:允許我們在尋星的時候發現和使用類的信息 一、爲什麼需要RTTI RTTI名字的含義:在運行時,識別一個對象的類型。

原创 《java編程思想系列之3》 訪問權限控制

一、java訪問權限修飾詞 1、包訪問權限 2、public:接口訪問權限 由於bite()只向dessert包中的類提供訪問權限,所以bite()成員在Dinner.java之中是無法訪問的,因此編譯器也禁止你使用它。

原创 《數組-規劃》 有兩個序列a,b,大小都爲n,序列元素的值任意整數,無序;要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小

一,題目:有兩個序列a,b,大小都爲n,序列元素的值任意整數,無序;要求:通過交換a,b中的元素,使[序列a元素的和]與[序列b元素的和]之間的差最小。       例如:                  var   a=[100 ,9

原创 二叉樹中節點的最大距離

昨天花了一個晚上爲《編程之美》,在豆瓣寫了一篇書評《遲來的書評和感想──給喜愛編程的朋友》。書評就不轉載到這裏了,取而代之,在這裏介紹書裏其中一條問題的另一個解法。這個解法比較簡短易讀及降低了空間複雜度,或者可以說覺得比較「美」吧。

原创 《java編程思想系列之5》 多態

一、再論向上轉型 向上轉型:對某個對象的引用視爲對其基類的引用 忘記對象類型 二、轉機 1、方法調用綁定 c方法調用:前期綁定 java方法調用:後期綁定 如果一種語言想要實現後期綁定,就必須具有某種機制,以便在運行的時候能夠

原创 動態規劃——數組中最長遞減子序列

求一個數組的最長遞減子序列比如{9,4,3,2,5,4,3,2}的最長遞減子序列爲{9,5,4,3,2} 分析:典型的動態規劃題目,對每一個數計算由它開始的最大遞減子序列的個數,並存放到一張映射表中。例如對數組a[n]有 …

原创 《動態規劃》 輸入兩個整數 n 和 m,從數列1,2,3.......n 中 隨意取幾個數, 使其和等於 m

這是一道中興的面試題 題目: 輸入兩個整數 n 和 m,從數列1,2,3.......n 中 隨意取幾個數,使其和等於 m ,要求將其中所有的可能組合列出來. 這道題就是一道典型的動態規劃問題了,思路和揹包問題差不多,m就

原创 《java編程思想系列之7》 內部類

一、創建內部類 內部類:可以將一個類的定義放在另一個類的定義內部 內部類和組合是完全不同的概念 如果想從外部類的非靜態方法之外的任意位置創建某個內部類的對象,那麼必須像在main()方法中那樣,具體的指明這個對象的類型:OuterC

原创 《java編程思想系列之2》 初始化與清理

一、用構造器確保初始化 (1)構造器採用和類相同的名字 (2)在java中,初始化和創建是捆綁在一起的,兩者不能分離 (3)構造器沒有返回值 爲什麼構造器沒有返回值? 構造器是一種特殊類型的方法,因爲它沒有返回值。這與返回值爲空(vo

原创 《java 編程思想系列之8》 通過異常處理錯誤

一、概念 二、基本異常 當拋出異常之後,有幾件事情會隨之發生: 首先,同java中其他對象的創建一樣,將使用new在堆上穿件異常對象。然後當前的執行路徑(它不能繼續下去了)被終止,並且從當前環境中彈出對異常對象的引用。此時,異常處理機

原创 C語言sprintf與sscanf函數[總結]

1、前言     我們經常涉及到數字與字符串之間的轉換,例如將32位無符號整數的ip地址轉換爲點分十進制的ip地址字符串,或者反過來。從給定的字符串中提取相關內容,例如給定一個地址:http://www.bokeyuan.cn:23

原创 Java:單例模式的N種寫法

Singleton模式是在編程實踐中應用最廣泛的幾種設計模式之一。以前知道的,實現單例的方法有兩種(下面的A、B)。剛剛在讀《Effective Java的時候》學到一種新的更好的方法(E):單元素的枚舉類型。同時通過網上資料也知道了