欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

java物理分頁和內存分頁

錢良釵1年前8瀏覽0評論

Java是一種強大的編程語言,它可以通過物理分頁和內存分頁來提高程序執行效率。下面我們來逐一介紹這兩種分頁方式。

物理分頁是將磁盤或者其他外部存儲器中的數據按照一頁一頁地讀取到內存中執行。物理分頁的主要優點是可以支持大量的數據和操作,從而提高了程序的運行效率。另一方面,物理分頁也存在一些缺點,比如由于需要頻繁地向外部存儲器讀取數據,這會造成一定的性能瓶頸,同時也會占用一定的系統資源。

public List<User> queryByPage(int pageSize, int pageNo) {
List<User> userList = new ArrayList<>();
String querySql = "SELECT * FROM user LIMIT ?, ?";
int startIndex = (pageNo - 1) * pageSize;
try (Connection conn = JdbcUtil.getConnection();
PreparedStatement ps = conn.prepareStatement(querySql)) {
ps.setInt(1, startIndex);
ps.setInt(2, pageSize);
ResultSet rs = ps.executeQuery();
while (rs.next()) {
// 將查詢結果封裝成 User 對象加入 userList 中
}
} catch (SQLException e) {
e.printStackTrace();
}
return userList;
}

以上代碼展示了一種使用 MySQL 數據庫的物理分頁代碼實現。在 queryByPage 方法中,我們使用了 LIMIT 子句來指定查詢結果的分頁。startIndex 計算了分頁查詢結果的起始位置。我們可以調整 pageSize 和 pageNo 實現不同的結果展示效果。

內存分頁是將從外部存儲器中讀取的數據一次性加載到內存中,然后根據需要對內存數據進行適當的切片和處理。內存分頁的主要優點是簡單易用而且執行效率較高。另一方面,內存分頁也存在一些缺點,比如占用較多的內存資源。

public List<User> queryByMemoryPage(List<User> userList, int pageSize, int pageNo) {
List<User> tempList = new ArrayList<>();
int startIndex = (pageNo - 1) * pageSize;
int endIndex = pageNo * pageSize;
endIndex = endIndex <= userList.size() ? endIndex : userList.size();
if (startIndex <= endIndex) {
tempList = userList.subList(startIndex, endIndex);
}
return tempList;
}

以上代碼展示了一種內存分頁的代碼實現。我們把整個 userList 集合一次性加載到內存中。然后我們使用 subList 方法對 userList 進行切片,在其中取出指定分頁結果并返回。

以 Java 為代表的編程語言,因其優越的內存管理機制也是廣受歡迎的。通過物理分頁和內存分頁,我們更加深入地了解到 Java 強大的程序實現能力。