20155222 2016-2017-2 《Java程序設計》第8周學習總結

20155222 2016-2017-2 《Java程序設計》第8周學習總結

教材學習內容總結

  • Java NIO(New IO)是一個可以替代標準Java IO API的IO API(從Java 1.4開始),Java NIO提供了與標準IO不同的IO工作方式。
    Java NIO: Channels and Buffers(通道和緩沖區)
    標準的IO基于字節流和字符流進行操作的,而NIO是基于通道(Channel)和緩沖區(Buffer)進行操作,數據總是從通道讀取到緩沖區中,或者從緩沖區寫入到通道中。

  • JDK 1.4中引入的日志API,能夠捕獲很多錯誤信息,比如:設置錯誤、性能瓶頸、安全破壞、程序或平臺小問題等。這些API提供的日志非常適用于各種不同使用者的分析,包括:外出服務工程師,軟件開發人員,參與客戶管理和維護的系統管理員。

教材學習中的問題和解決過程

  • IO與NIO有何區別?
    面向流與面向緩沖
    Java NIO和IO之間第一個最大的區別是,IO是面向流的,NIO是面向緩沖區的。 Java IO面向流意味著每次從流中讀一個或多個字節,直至讀取所有字節,它們沒有被緩存在任何地方。此外,它不能前后移動流中的數據。如果需要前后移動從流中讀取的數據,需要先將它緩存到一個緩沖區。 Java NIO的緩沖導向方法略有不同。數據讀取到一個它稍后處理的緩沖區,需要時可在緩沖區中前后移動。這就增加了處理過程中的靈活性。但是,還需要檢查是否該緩沖區中包含所有您需要處理的數據。而且,需確保當更多的數據讀入緩沖區時,不要覆蓋緩沖區里尚未處理的數據。
    阻塞與非阻塞IO
    Java IO的各種流是阻塞的。這意味著,當一個線程調用read() 或 write()時,該線程被阻塞,直到有一些數據被讀取,或數據完全寫入。該線程在此期間不能再干任何事情了。 Java NIO的非阻塞模式,使一個線程從某通道發送請求讀取數據,但是它僅能得到目前可用的數據,如果目前沒有數據可用時,就什么都不會獲取。而不是保持線程阻塞,所以直至數據變的可以讀取之前,該線程可以繼續做其他的事情。 非阻塞寫也是如此。一個線程請求寫入一些數據到某通道,但不需要等待它完全寫入,這個線程同時可以去做別的事情。 線程通常將非阻塞IO的空閑時間用于在其它通道上執行IO操作,所以一個單獨的線程現在可以管理多個輸入和輸出通道(channel)。

代碼調試中的問題和解決過程

-如何使用NIO讀取數據。

    import java.io.*;  import java.nio.*;  import java.nio.channels.*; public class Program {  static public void main( String args[] ) throws Exception {  FileInputStream fin = new FileInputStream("c:\\test.txt");  // 獲取通道  FileChannel fc = fin.getChannel();  // 創建緩沖區  ByteBuffer buffer = ByteBuffer.allocate(1024);  // 讀取數據到緩沖區  fc.read(buffer);  buffer.flip();  while (buffer.remaining()>0) {  byte b = buffer.get();  System.out.print(((char)b));  }  fin.close();  }  
}  

代碼托管

1073649-20170416213912212-727010864.png

上周考試錯題總結

  • 下面哪些Linux 命令可以ASCII碼和16進制單字節方法輸出Hello.java的內容?

od -tcx1 Hello.java
od -tc -tx1 Hello.java

  • JDK8中定義的通用函數接口,從行為上分為()類型:

Consumer
Function
Predicate
Supplier

  • When applied to instance variables, the ________________ visibility modifier enforces encapsulation(當應用到實例變量時,____可見性修飾符強制執行封裝).:

    private

  • __________________ parameters are the values that are used when calling a method(___參數是調用方法時傳給方法的值).:

    actual(實際參數)

  • What is the output of the following code?(下面代碼的運行結果是?)
    LocalDate date = LocalDate.of(2018, Month.APRIL, 40);
    System.out.println(date.getYear() + " " + date.getMonth()+ " "+ date.getDayOfMonth());

    A runtime exception is thrown.

  • What is the output of the following code?(下面代碼的運行結果是?)
    LocalDate date = LocalDate.of(2018, Month.APRIL, 30);
    date.plusDays(2);
    date.plusYears(3);
    System.out.println(date.getYear() + " "+ date.getMonth() + " "+ date.getDayOfMonth());

    2018 APRIL 30

  • Given the following, which answers can correctly fill in the blank? (Choose all that apply.)針對下面的代碼,()中應填入哪個選項?
    LocalDate date = LocalDate.now();
    LocalTime time = LocalTime.now();
    LocalDateTime dateTime = LocalDateTime.now();
    ZoneId zoneId = ZoneId.systemDefault();
    ZonedDateTime zonedDateTime = ZonedDateTime.of(dateTime, zoneId);
    long epochSeconds = 0;
    Instant instant = ( );

    zonedDateTime.toInstant()

學習進度條

代碼行數(新增/累積)博客量(新增/累積)學習時間(新增/累積)重要成長
目標5000行30篇400小時
第一周9/93/610/10
第二周40/491/75/15
第三周49/991/810/25
第四周202/3011/915/40
第五周170/4711/105/45
第六周115/5201/115/50
第七周18/5381/125/55
第八周28/5451/135/60

嘗試一下記錄「計劃學習時間」和「實際學習時間」,到期末看看能不能改進自己的計劃能力。這個工作學習中很重要,也很有用。
耗時估計的公式
:Y=X+X/N ,Y=X-X/N,訓練次數多了,X、Y就接近了。

參考:軟件工程軟件的估計為什么這么難,軟件工程 估計方法

  • 計劃學習時間:20小時

  • 實際學習時間:5小時

  • 改進情況:

  • 有空多看看現代軟件工程 課件 軟件工程師能力自我評價表

參考資料

  • Java學習筆記(第8版)

  • 《Java學習筆記(第8版)》學習指導
  • ...

轉載于:https://www.cnblogs.com/20155222lzj/p/6720163.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/456751.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/456751.shtml
英文地址,請注明出處:http://en.pswp.cn/news/456751.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

BAT經典面試題精簡版(基礎知識附答案)

文章目錄目錄J2SE基礎JVM操作系統TCP/IP數據結構與算法目錄 J2SE基礎 九種基本數據類型的大小,以及他們的封裝類。 原始類型封裝類 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble Switch能否用string做參數&…

使用2to3.py 轉換 python2.x 代碼 到python3

1.使用Windows 命令提示符(cmd)cd到2to3.py 腳本所在位置,如下圖: 找不到的2 to 3.py的去 pycharm中雙擊shift搜索一下 2.緊接著運行 2to3.py 腳本(可省略) 3.執行你想要轉換的文件 python 2to3.py -w H:…

iis6.0與asp.net的運行原理

這幾天上網翻閱了不少前輩們的關于iis和asp.net運行原理的博客,學的有點零零散散,花了好長時間做了一個小結(雖然文字不多,但也花了不少時間呢),鄙人不才,難免有理解不道的地方,還望…

元類--用不上的先了解

元類 1. 類也是對象 在大多數編程語言中,類就是一組用來描述如何生成一個對象的代碼段。在Python中這一點仍然成立: >>> class ObjectCreator(object): … pass … >>> my_object ObjectCreator() >>> print(my_ob…

Android學習筆記進階十之Matrix錯切變換

剛開始我也不懂啥叫錯切變換,一看效果圖你就恍然大悟。 對圖像的錯切變換做個總結: x x0 b*y0; y d*x0 y0; 與之對應的方法是: [java] view plaincopyMatrix matrix new Matrix(); matrix.setSkew(0.0f, 0.5f);

SQL數據庫實戰(含建表數據和查詢案例)

Oracle數據庫安裝的時候會自帶一個練習用數據庫(其中包含employee表,后來版本中此表改名為emp); 首先在安裝過程中應該有個選項“是否安裝實例表”(完全安裝模式下默認是選擇的),需要選擇才有此…

Django中的核心思想ORM---元類實現ORM

1. ORM是什么 ORM 是 python編程語言后端web框架 Django的核心思想,“Object Relational Mapping”,即對象-關系映射,簡稱ORM。 一個句話理解就是:創建一個實例對象,用創建它的類名當做數據表名,用創建它…

移動互聯網廣告 - 第十更 - 廣告投放運營 DashBoard - 2016/12/10

廣告投放運營 DashBoard設計 移動互聯網互聯網廣告投放,數據監控DashBoard,基礎樣例示意,下圖僅供參考(來自于互聯網)。 轉載于:https://www.cnblogs.com/pythonMLer/p/6154700.html

微信小程序中使用emoji表情相關說明

2019獨角獸企業重金招聘Python工程師標準>>> 本帖將聚合一些跟emoji表情有關的知識;相關文章:“i愛記賬” 小程序后端開發小結 第7條經驗前端傳過來的昵稱和備注信息一定要經過嚴格的正則表達式過濾,放置出現XSS等攻擊&#xff0c…

java.lang.IllegalArgumentException: Does not contain a valid host:port authority: ignorethis

執行Hive語句運行MapReduce程序時突然出現這樣的異常: Total MapReduce jobs 1 Launching Job 1 out of 1 Number of reduce tasks not specified. Estimated from input data size: 1 In order to change the average load for a reducer (in bytes):set hive.ex…

Oracle基礎語句

1、創建表create table IT_EMPLOYEES(ENPLOYEES_ID NUMBER(6) NOT NULL UNIQUE,FIRST_NAME VARCHAR2(20),LAST_NAME VARCHAR2(25) NOT NULL,EMAIL VARCHAR2(25),PHONE_NUMBER VARCHAR2(20),JOB_ID VARCHAR2(10),SALARY NUMBER(8,2),MANAGER_ID NUMBER(6));2、--創建索引&#x…

Linux三劍客之grep 與 egrep

grep:Linux上文本處理三劍客1 grep:文本過濾(模式:pattern)工具; *(grep, egrep, fgrep) 2 sed:stream editor,文本編輯工具; 3 awk:Linux上的實現gawk,文本報…

WSGI直觀形象的了解一下

1. 瀏覽器請求動態頁面過程 2. WSGI 怎么在你剛建立的Web服務器上運行一個Django應用和Flask應用,如何不做任何改變而適應不同的web架構呢? 在以前,選擇 Python web 架構會受制于可用的web服務器,反之亦然。如果架構和服務器可以…

安裝Hbase(分布式)遇到一些問題及解決方法

問題一:安裝完成后在Hbase shell 命令行執行list命令時,爆出如下錯誤: hbase(main):001:0> list TABLE …

安裝MySql卡在Start Service的問題

我的情況:之前在windows下安裝過5.6版本,卸載后,現在安裝5.7版本,然后卡在Start Service這里,log日志沒報任何錯誤,后來經過不斷的嘗試各種網上的辦法終于把問題解決了。 問題的原因就是當初卸載5.6版本時…

學習進度條11

第十三周 日期 星期一 星期二 星期三 星期四 星期五 星期六 所花時間(包括上課) 19:10-22:20 (編程河北省科技信息通用調查系統) 8:00-10:00 (上課) 18:30-21:00 (Oracle實驗) 14:00-16:30 (編程河北省科技信息通用調查系統) 18:20-22:30 (編…

Python面向切面編程是什么

簡而言之就是裝飾器 https://blog.csdn.net/qq_41856814/article/details/90146293

hibernate實現多變聯合查詢

Hibernate主要支持兩種查詢方式:HQL查詢和Criteria查詢。前者應用較為廣發,后者也只是調用封裝好的接口。 現在有一個問題,就是實現多表連接查詢,且查詢結果集不與任何一個實體類對應,怎么解決呢? 舉個例子…

PyCharm光標變粗的解決辦法

pycharm中光標變粗,如下: 此時變成了改寫模式,只需要按下鍵盤的insert鍵即可 轉載于:https://www.cnblogs.com/uglyliu/p/6159839.html

SparkRDD常用算子實踐(附運行效果圖)

目錄1、簡單算子說明2、復雜算子說明 目錄 SparkRDD算子分為兩類:Transformation與Action. Transformation:即延遲加載數據,Transformation會記錄元數據信息,當計算任務觸發Action時,才會真正開始計算。 Action&am…