主頁 > 後端開發 > 8年Android老碼農現身分享:一個月面試6家大廠屢敗屢戰,那些面試學習上走過的彎路

8年Android老碼農現身分享:一個月面試6家大廠屢敗屢戰,那些面試學習上走過的彎路

2021-07-28 15:23:23 後端開發

背景

前段時間突然接到同行好友的電話,要和我聊聊天,

他說他們部門調整,雖然最后他留了下來,但還是非常焦慮,人無遠慮必有近憂,他這次被刺激到了,想提高一下自己,以免下次再有類似的心驚肉跳,但怎么提高呢?

程式員第一考慮的當然是技術,但現在真不知道學什么了:干了三四年的開發,手頭的作業馬馬虎虎都沒什么問題了,就算有問題,也是業務邏輯上的問題,系統太復雜,吃不透;或者系統里一些過時的/生僻的技術,真心覺得沒必要花時間花精力去研究,能對付就行了,是不是?反正下家單位99.99%的幾率是不會用到這些東西的的,

那么就是一些新技術了,新技術雜得很,不知道學什么,框架類別庫啥的其實沒什么技術含量,一兩個星期就可以上手,上手了之后呢?往深里學?其實和老舊技術一樣的問題,誰知道下一份作業用不用得上呢!而且沒趣,大概是因為沒有挑戰性吧,反正就那個樣,還能咋的?

學習瓶頸

一直聊到這里,我都非常理解,我這個8年的老碼農,體會比他還深,其實稍微干上一些年頭,就是這個樣子,看起來像是“學習熱情下降”“懶得學習”,但本質上呢,兩個原因:

1、本身的技能增強,能夠應付日常作業,沒有剛入行時那么大的壓力了,

2、學習的邊際效益遞減,所以開始考慮投資/收益比了,

剛入行的時候,技術一丁點的進步,都能帶來非常大的成就感,至少能少挨點罵,是不是?積累到一定時候,就可以跳個槽漲點工資啥的,但三五年過后,

我已經會了:

  • 熟悉Android OS系統體系結構、framework層;
  • 良好的Java技術功底,精通多執行緒、socket通信、檔案操作等java底層技術;
  • 精通Android的基本組件使用,熟練使用Android各種布局與控制元件,熟練運用各種影片特效;
  • 熟悉View的繪制原理,精通自定義影片以及自定View的開發
  • 有豐富的Android性能優化經驗,善于解決系統崩潰,記憶體溢位和兼容性問題;
  • 熟悉JNI技術和代碼混淆
  • 有單元測驗、自動化測驗及相關框架經驗;
  • 有良好的代碼習慣,要求結構清晰,命名規范,邏輯性強,代碼冗余率低,代碼注釋清晰;

下面分享一下我自己的例子,

開發8年一個月面試6家大廠的面試題整理和建議

我不是什么大牛,我只是一個有八年作業經驗的Android老兵,既沒有非常亮眼的學歷,也沒有牛逼大廠的履歷,

去年冬天,在孩子得病從急診轉住院的時候,我得到了年前將被優化的訊息,作為家里唯一經濟來源的我整個人蒙了,一時間茫然和無助差點毀了我,

最后我還是和家人如實說了,受到了他們的極大的鼓勵,也找到了重新開始的勇氣,

可惜這場疫情來的如此兇猛,職位少、要求高、電話面試、視頻面試、在線coding、屢戰屢敗、屢敗屢戰,構成了我這一個月的常規生活,

我一開始也焦慮、茫然,甚至對自己的能力和作業經驗深深懷疑,

后來經過幾個好朋友的鼓勵打氣,也看了很多面試文章,認真總結自己面試中不足的地方,查漏補缺,終于在這周確定了offer,

接下來我就對我面過公司的面試題做一下總結,權當拋磚引玉,希望對大家有幫忙,

面試問題匯總

某知名在線教育公司

  • 介紹一下自己專案中MVP如何實作;
  • 自定義View流程;
  • 說說專案中遇到的性能優化、記憶體泄漏和記憶體溢位;
  • native和h5互動怎么做;
  • 事件分發流程;
  • http、https的區別,post、get區別;
  • 演算法:兩個單鏈表相交,求相交結點;
  • 演算法:獲取單鏈表倒數第k個元素;

著名安全類公司

  • Activity的啟動模式和應用場景;
  • Handler機制以及與Message等之間的關系;
  • 與Service通信的幾種方式,行程間通信和行程內通信的區別;
  • 手寫代碼實作執行緒死鎖; 手寫兩種單利模式,并講出優缺點;
  • 如何實作RecyclerView的側滑洗掉;
  • http、tcp/ip基本認識,post和get區別;
  • 內部類為什么會造成記憶體泄漏;
  • 怎樣給RecyclerView加header和footer,為什么可以這樣;
  • RecyclerView如何實作復雜布局;
  • 演算法:一個整型陣列中,只有兩個數出現一次,其余均出現兩次,找出這兩個數,給出時間復雜度;

著名求職類公司

  • View的回執流程,onMeasure方法的三種模式;
  • 畫出Window的層次結構;
  • Handler、Looper原理;
  • 說一下自己設計的圖片框架;
  • Glide原始碼;
  • 對RxJava的理解;
  • 事件分發機制,TouchEvent的down、up和move;
  • 專案中如何實作熱修復,或使用了哪個熱修復庫;
  • 手寫實作資料庫SQLiteOpenHelper;
  • ActivityThread的main方法中做了些什么;
  • 記憶體泄漏的原因,常見場景和如何處理;
  • 布局優化,如何防止過度繪制;

一個名字聽起來巨有錢的公司

  • RxJava的優劣勢;
  • home/user/a/../b/./c所代表的的路徑,手寫代碼輸出絕對路徑;
  • 對系統相機的了解;
  • View的回執流程;
  • Glide原始碼,介紹自己的圖片框架;
  • 手寫實作快速排序;
  • 介紹代理模式;
  • MVC、MVP各自特點和優缺點;

某大廠下的外賣團隊

  • 介紹Activity任務堆疊;
  • RxJava原理,RxJava同時執行5個任務,是并行還是串行;
  • Activity的啟動程序;
  • View的繪制程序,onMeasure方法中兩個引數的含義;
  • 自己封裝過什么框架,介紹一下原理;
  • ListView和RecyclerView的優化和區別;
  • 如何為RecyclerView的Adapter設定監聽,說出最好方案;
  • 介紹一個自己做過的最滿意的東西;
  • 泛型中 ? 表示什么含義,若加入不滿足條件的型別會怎樣;
  • 單例模式中的雙檢鎖,如果把類鎖換成內部宣告的另一個類,效果會怎么樣;

知名在線借款公司

  • Activity的生命周期,啟動模式;
  • 如何實作多個Activity同時展示;
  • 手寫單例模式并解釋為什么這樣寫;
  • 如何防止過度繪制;
  • 介紹下你閱讀過的原始碼;
  • 磁盤快取怎么實作;
  • JVM垃圾回識訓制;

Android開發到底需要學習哪些?

對于現在的Android及移動互聯網來說,我們需要掌握的技術,我做了一個清單:

  • 泛型原理
  • 反射原理
  • Java虛擬機原理
  • 執行緒池原理
  • 注解原理
  • 注解原理序列化
  • Activity知識體系(Activity的生命周期、Activity的任務堆疊、Activity的啟動模式、View原始碼、Fragment內核相關、service原理等)
  • 代碼框架結構優化(資料結構、排序演算法、設計模式)
  • APP性能優化(用戶體驗優化、適配、代碼調優)
  • 熱修復
  • 熱升級
  • Hook技術
  • IOC架構設計
  • NDK(c編程、C++、JNI、LINUX)
  • 如何提高開發效率?
  • MVC、MVP、MVVM
  • 微信小程式
  • Hybrid
  • Flutter

決議知識點,為什么要學

1.資料結構和演算法

資料結構和演算法其實是分開的東西,我們需要先掌握各種資料結構,再去加深演算法,資料結構和演算法其實也屬于基礎,但是它現在越來越重要,所以我就單獨拿出來說了,

資料結構怎么深入同樣我也推薦大家去看清華或者浙大《資料結構》公開課,特別是清華的,值得反復研究,

至于演算法,首先要做的就是動手,LeetCode上直接干!

第二階段就是要總結各種演算法的思想和套路,像遞回、動態規劃等這些演算法都是有套路的,在LeetCode上也有按資料結構和演算法分類的篩選,大家可以針對性練習和總結,

當然,對于一個Android程式員,能做到每天在LeetCode上刷題就非常不錯了,所以一定要堅持,等你堅持到一定的時間,你會發現你越來越游刃有余,我從18年底開始在LeetCode上刷題,目前已經刷了200多道了,小米的面試也非常注重演算法,還要能寫,

而且對一些特別注重演算法的公司,演算法這塊的考核非常嚴苛,對,就是嚴苛,而不是嚴格,

2.設計模式

設計模式中包括了設計原則,其實對于Android開發人員來說,設計模式就那23種,知道并了解這些設計模式是第一個階段,僅僅是到這個階段是不夠的,一般面試也不會問你某個設計模式的概念,而會讓你具體的說說你對某一種設計模式的深入了解和使用,它的優缺點,所以,第二階段就是要運用它們,其次要和Android原始碼中運用到設計模式地方進行結合學習,

例如建造者模式,Andoird中的Dialog創建就使用到了,還有像單例模式、配接器模式、觀察者模式等等都是在Android中非常常用的設計模式,也是在面試中出現頻率很高的,

3.語言學習開發語言

Android應用是由Java語音進行開發的,SDK也是由Java語言撰寫的,所以我們要學習Java語言,另外,雖然說Kotlin語言也得到Android官方的熱推,但是Kotlin也是編譯成了Java語言在運行的,對于Android開發來說,

只要SDK沒有用Kotlin重寫,那么Java語言都是需要學習的,而且Android apk的后臺服務器程式大概率是Java語言構建,所以學習Java是一個必然,

那么Java中那些東西是我們Android中比較相關的稍微比較難的Java基礎幾乎是一個門檻,像泛型丶多執行緒丶反射丶JVM丶JavaIO丶注解丶序列化等等,

4.APP開發框架知識

這塊知識是現今使用者最多的,我們稱之為Android2013-2016nian 的技術,但是,即使是這樣的技術,很多開發者也往往因為網上很多copy代碼的習慣而導致對這塊的使用的代碼熟悉而陌,熟悉的是天天和它們打交道天天在復制,陌生的是天天打交道卻沒有深入研究過他們,要學習原始碼,模仿原始碼,然后在hook原始碼,這樣才能說懂這塊的知識,

5.App性能優化

一個app的西能好不好我們需要從兩個層面分析:

1、從寫代碼的時候就注意,讓自己的代碼是高性能高可用的代碼,這個程序是書寫高性能代碼
2、對已經成型的代碼通過工具檢測代碼問題,通過檢查到問題來指導我們進行代碼的刪改這個程序被稱為調優

那如何寫出高性能的代碼呢?

需要我們具備深厚的代碼功底,這就是代碼的基礎,如:資料結構達到可以根據應用場景寫出符合當前場景的特殊結構,比如google針對Android平臺特征研發了SparseArray代替HashMap.另外,對常用的演算法也有自己獨到的見解

6.NDK模塊開發

音視頻、高清大圖片、人工智能、抖音直播等這些年與用戶緊密相關,與我們生活最相關的技術一直都在尋找最終的技術落地平臺,以前是Windows系統,而現在是移動系統了,而移動系統中Android比例又是最大的,所以NDK可以說是必備要學習的,除此之外,音視頻的編解碼技術流媒體協議,ffmepeg,c,c++,JNI,linux都是音視頻開發必備技能,而且OpenCV \OpenGI這些又是影像處理必備,

7.如何提高開發效率?

工欲善其事必先利其器,如何提高開發效率,很多開發者在開發中由于gradle不會用導致加載代碼非常耗時,這些都是你的作業成本的浪費,還有就是git的使用也可以幫助我們管理好我們的代碼,這個非常關鍵,因為這個工具可以讓我們修改的代碼不會因為錯誤操作而導致丟失,另外,對移動開發者我們至少需要知道如何抓取網路包,其中,最常用的stetho就是一個非常好用的可以抓取網路包的工具,

8.混合開發

混合開發的flutter現在已經逐漸成了主流的混合開發框架,另外由于阿里系的強大存在,導致阿里系的公司都在用Weex混合架構,這些都是一個Android工程師開拓視野,走向未來必不可少的基本技能的,

寫給看到最后同學的話

這些算是我作為過來人對于應屆畢業生和剛作業不久的同學的一些小小建議吧,

(1)一定要緊跟技術前進的腳步,尤其是大資料相關的技術,在技術更迭的時候一定要學習熟悉新技術,看原始碼,哪怕自己在作業中用不到也一定要學,因為這是你下一份作業的敲門磚,

(2)不要給自己設定舒適區,這個就是說,一個公司待久了不要懶惰,不能荒廢自己,始終要保持清醒的頭腦和進取心,不斷學習,不斷完善自己的技術,架構設計能力,專案管理能力,交付能力等,

一定要及時從專案中總結經驗和不足,最好落實到日記本中,最后通過不斷思考,形成自己的做事方法論,

(3)對自己的職業生涯要有一個規劃,以后要做哪一塊一定要有自己的想法,確定了就要從這個方向完善自己,多學多練,

沒有人會專一做某一塊,但是自己一定要想好哪一塊是自己以后要走的方向,那么這一個方向確定了就要深入的學習這一塊的知識,多看原始碼,多做練習,如果接觸到具體專案,要在專案中沉淀自己,最后形成自己的知識體系,

(4)做事情要有擔當,不要根據OKR給自己設定界限,有能力有空閑多做一定要多做,這也是別人認可你的最佳途徑之一,互聯網圈子很小,大家認可你,以后去大廠,換個好作業,也許就更容易,

Android開發如何提升自身技能?

Android學習是一條漫長的道路,我們要學習的東西不僅僅只有表面的 技術,還要深入底層,弄明白下面的 原理,只有這樣,我們才能夠提高自己的競爭力,在當今這個競爭激烈的世界里立足,

現在競爭這么激烈,只有通過不斷學習,提高自己,才能保持競爭力,

對于程式員來說,要學習的知識內容、技術有太多太多,要想不被環境淘汰就只有不斷提升自己,從來都是我們去適應環境,而不是環境來適應我們!

對于一些不知道學習什么,沒有一個系統路線的程式員,這里給大家提供一個大概的思路:

  • 架構師筑基必備技能:深入Java泛型+注解深入淺出+并發編程+資料傳輸與序列化+Java虛擬機原理+反射與類加載+動態代理+高效IO
  • Android高級UI與FrameWork原始碼:高級UI晉升+Framework內核決議+Android組件內核+資料持久化
  • 360°全方面性能調優:設計思想與代碼質量優化+程式性能優化+開發效率優化
  • 解讀開源框架設計思想:熱修復設計+插件化框架解讀+組件化框架設計+圖片加載框架+網路訪問框架設計+RXJava回應式編程框架設計+IOC架構設計+Android架構組件Jetpack
  • NDK模塊開發:NDK基礎知識體系+底層圖片處理+音視頻開發
  • 微信小程式:小程式介紹+UI開發+API操作+微信對接
  • Hybrid 開發與Flutter:Html5專案實戰+Flutter進階

知識梳理完之后,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結,

接下來分享的系統學習資源以詳解各大互聯網公司的 Android 常見面試題為主線,從面試的角度帶你介紹必備知識點,以及該知識點在專案中的實際應用

幫你在現在的基礎上,重新梳理和建立 Android 開發的知識體系,無論是你短期內想提升 Android 內功實力,突破自己作業中的能力瓶頸,還是準備參加 Android 面試,都會在這份資料中有所一些識訓,

1.2020大廠面試高頻知識點

  • 圖片
  • 網路和安全機制
  • 資料庫
  • 插件化、模塊化、組件化、熱修復、增量更新、Gradle
  • 架構設計和設計模式
  • 性能優化
  • Android Framework
  • Android優秀三方庫原始碼

2.Jetpack架構組件從入門到精通

  • Android Jetpack - Navigation
  • Android Jetpack - Data Binding
  • Android Jetpack - ViewModel & LiveData
  • Android Jetpack - Room
  • Android Jetpack - Paging
  • Android Jetpack - WorkManger
  • Android Jetpack架構組件之Lifecycle
  • Android Jetpack Compose 最全上手指南

3.Framework精編內核決議

主要內容包含:

  • 深入決議Binder
  • 深入決議Handler
  • Dalvik VM 行程系統
  • 深入決議 WMS
  • PackagerManagerService

4.Kotlin強化實戰(附Demo)

  • 第一章 Kotlin入門教程
  • 第二章 Kotlin 實戰避坑指南
  • 第三章 專案實戰《Kotlin Jetpack 實戰》
    • 從一個膜拜大神的 Demo 開始
    • Kotlin 寫 Gradle 腳本是一種什么體驗?
    • Kotlin 編程的三重境界
    • Kotlin 高階函式
    • Kotlin 泛型
    • Kotlin 擴展
    • Kotlin 委托
    • 協程“不為人知”的除錯技巧
    • 圖解協程:suspend

5.Android設計思想解讀開源框架

  • 熱修復
  • 插件化
  • 組件化框架設計
  • 圖片加載框架
  • 網路請求框架
  • RXJava 回應式編程框架設計
  • IOC 架構設計
  • Android架構組件Jetpack

6.NDK模塊開發

  • NDK 模塊開發
  • JNI 模塊
  • Native 開發工具
  • Linux 編程
  • 底層圖片處理
  • 音視頻開發
  • 機器學習

7.Android原始碼決議

“編程語言是程式員的表達的方式,而架構是程式員對世界的認知”,所以,程式員要想快速認知并學習架構,讀原始碼是必不可少的,閱讀原始碼,是解決問題 + 理解事物,更重要的:看到原始碼背后的想法;程式員說:讀萬行原始碼,行萬種實踐,

主要內含微信 MMKV 原始碼、AsyncTask 原始碼、Volley 原始碼、Retrofit原始碼、OkHttp 原始碼等等,

以上這些內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,或者點擊 【這里】 查看獲取方式,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/290417.html

標籤:java

上一篇:【leetcode刷題】12.移動零——Java版

下一篇:2021Java面試題匯總全劇終?【含答案及十八套面試題免費下載】

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more