λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Java

(12)
μžλ°”[Java] μž…μΆœλ ₯ Stream μ΄ν•΄ν•˜κΈ° β–ΆInputStream / Sytem.in.read() ImputStream은 μ‚¬μš©μžμ˜ μž…λ ₯을 받을 수 μžˆλŠ” 역할을 ν•œλ‹€. μ‚¬μš©μž μž…λ ₯에 자주 μ“°μ΄λŠ” 클래슀인 Scanner와 λ‹€λ₯Έ λ™μž‘μ„ λ³΄μ΄λŠ”λ°, κ°€μž₯ 큰 νŠΉμ§•μ€ 1byte λ‹¨μœ„λ‘œ μž…λ ₯을 λ°›μ•„μ˜¨λ‹€λŠ” 점이닀. Sytem.in.read()은 μ‚¬μš©μž μž…λ ₯을 μž„μ‹œ μ €μž₯ν•˜λŠ” 버퍼(Buffer)μ—μ„œ μ €μž₯된 값을 ν•˜λ‚˜μ”© κ°€μ Έμ˜¨λ‹€. 이 read()의 return 값은 byteλ‹¨μœ„μ˜ 데이터 ν˜Ήμ€ -1(버퍼에 값이 없을 λ•Œ)이닀. β–Άμ•„μŠ€ν‚€μ½”λ“œ κ°’μœΌλ‘œ μ €μž₯ read() λ©”μ„œλ“œλ‘œ λ¦¬ν„΄ν•œ 값을 λ³€μˆ˜μ— μ €μž₯ν•˜κ²Œ 될 텐데, μ΄λ•Œ μ‚¬μš©μž μž…λ ₯ 값을 리턴 값인 byteλ‹¨μœ„(0~255)에 λ§žμΆ”μ–΄ μ•„μŠ€ν‚€μ½”λ“œ 값을 μ €μž₯ν•˜κ²Œ λœλ‹€. λ³€μˆ˜ a에 μ‚¬μš©μž μž…λ ₯으둜 문자 'a'λ₯Ό λ°›μœΌλ©΄ 문자 'a..
μžλ°”[Java] μΈν„°νŽ˜μ΄μŠ€[Interface] μ‚¬μš©κ³Ό 이유 β–Ά μΈν„°νŽ˜μ΄μŠ€(Interface) λž€? μžλ°”μ—μ„œ μ œκ³΅ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€λž€, 좔상 ν΄λž˜μŠ€μ™€ λ§ˆμ°¬κ°€μ§€λ‘œ μΆ”μƒλœ 틀을 λ§Œλ“€μ–΄ κ°œλ°œμ— ν˜Όμ„ μ΄ μ—†κ²Œλ” λ„μ™€μ£ΌλŠ” 역할을 ν•˜λŠ” 객체이닀. ν˜‘μ—…μ„ ν•˜λŠ” κ°œλ°œμžλ“€λΌλ¦¬μ˜ μ›ν™œν•œ μ˜μ‚¬μ†Œν†΅μ„ μœ„ν•΄μ„œ μƒμ„±λœ κ°œλ…μœΌλ‘œ μΈν„°νŽ˜μ΄μŠ€λΌλŠ” 이름을 κ°€μ§€λŠ” 것 κ°™λ‹€. β–Ά 좔상 ν΄λž˜μŠ€μ™€ 무엇이 λ‹€λ₯ΌκΉŒ? 좔상 ν΄λž˜μŠ€λŠ” 트리 ν˜•μ‹μœΌλ‘œ μƒμœ„ ν΄λž˜μŠ€μ™€ ν•˜μœ„ 클래슀둜 λ‚˜λ‰˜μ–΄μ§€λŠ” 트리 ꡬ쑰이닀. ν•˜μœ„ ν΄λž˜μŠ€λŠ” μƒμœ„ ν΄λž˜μŠ€μ—μ„œ μΆ”μƒν™”μ‹œν‚¨ μƒμ„±μž ν˜Ήμ€ λ©”μ„œλ“œλ₯Ό μ •μ˜ν•˜λ©΄μ„œ 더 κ΅¬μ²΄ν™”λ˜μ–΄κ°„λ‹€. λ°˜λ©΄μ—, μΈν„°νŽ˜μ΄μŠ€λŠ” 트리 ꡬ쑰와 같은 수직적 ꡬ쑰가 μ•„λ‹Œ μˆ˜ν‰μ  ꡬ쑰λ₯Ό κ°€μ§€κ²Œ λœλ‹€. 수직적 ꡬ쑰λ₯Ό κ°–λŠ” 좔상 ν΄λž˜μŠ€λŠ” ν•˜λ‚˜μ˜ μƒμœ„ ν΄λž˜μŠ€μ—κ²Œλ§Œ 상속받을 수 μžˆμ§€λ§Œ, μˆ˜ν‰μ  ꡬ쑰의 μΈν„°νŽ˜μ΄μŠ€λŠ” ν•˜λ‚˜μ˜ ν΄λž˜μŠ€κ°€ μ—¬λŸ¬ μΈν„°νŽ˜μ΄..
μžλ°”[Java] μ ‘κ·Ό μ œμ–΄μž[Access modifier] μžλ°”μ˜ μ ‘κ·Ό μ œμ–΄μž default / public(package) / private / protected / static / final β–Ά default(package) κ°€μž₯ 기본적인 μ ‘κ·Ό μ œμ–΄μžλ‘œ μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€. => μ ‘κ·Ό μ œμ–΄μžλ₯Ό μƒλž΅ν•˜λ©΄ default둜 μ„€μ •λœλ‹€. defaultλŠ” 같은 νŒ¨ν‚€μ§€ 내에 μžˆλŠ” class라면 접근이 κ°€λŠ₯ν•˜λ‹€. 1번 νŒ¨ν‚€μ§€μ— 1번 클래슀λ₯Ό μ •μ˜ν•˜μ˜€λ‹€. 2번 νŒ¨ν‚€μ§€λ₯Ό λ§Œλ“€κ³  2번 클래슀λ₯Ό λ§Œλ“€κ³  2번 ν΄λž˜μŠ€μ— 1번 클래슀λ₯Ό 뢈러였기(import)λ₯Ό ν–ˆμ„ λ•Œ, 였λ₯˜ λ°œμƒ => 같은 νŒ¨ν‚€μ§€ μ•ˆμ—μ„œλ§Œ 뢈러였기 κ°€λŠ₯ β–Ά public μ΄λ¦„μ²˜λŸΌ μ–΄λ””μ„œλ“  뢈러올 수 μžˆλ‹€. λ‹€λ₯Έ νŒ¨ν‚€μ§€ μ•ˆμ˜ λ‹€λ₯Έ ν΄λž˜μŠ€μ—μ„œλ„ λΆˆλŸ¬μ™€ μ‚¬μš© κ°€λŠ₯ν•˜λ‹€. testPackage1 νŒ¨ν‚€μ§€μ— μžˆλŠ” TestClass2 ..
μžλ°”(Java) μ‚¬μš©μž μž…/좜λ ₯κ³Ό 버퍼(butter) ν”„λ‘œκ·Έλž¨μ„ μ‚¬μš©ν•˜λ‹€ 보면 μ‚¬μš©μž μž…λ ₯을 λ°›λŠ” κ²½μš°κ°€ λ§Žλ‹€. cμ–Έμ–΄λ‚˜ java의 경우 μ‚¬μš©μž μž…λ ₯을 받을 λ•Œ, 버퍼(buffer)λΌλŠ” 녀석에 값을 μž„μ‹œλ‘œ μ €μž₯ν•΄λ‘μ—ˆλ‹€κ°€ ν•œλ²ˆμ— λ³€μˆ˜μ— μ €μž₯ν•˜λŠ”λ° μˆ«μžμ™€ λ¬Έμžκ°€ λ‹€λ₯΄κ²Œ λ™μž‘ν•΄μ„œ μ΄μƒν•œ μ˜λ„ν•œ 바와 λ‹€λ₯΄κ²Œ λ˜κΈ°λ„ ν•œλ‹€. β–Ά 버퍼(buffer)의 이해 일단, μ™œ λ²„νΌλΌλŠ” 것이 μ‘΄μž¬ν•˜λŠ”μ§€λΆ€ν„° μ•Œμ•„μ•Όν•  것 κ°™λ‹€. 컴퓨터에 따라 λ‹€λ₯΄κ² μ§€λ§Œ 일반적인 컴퓨터(κ°€μ •μš©)λŠ” 1μ΄ˆμ— μ•½ 8천 ~ 1μ–΅ 번 μ •λ„μ˜ 연산을 μ²˜λ¦¬ν•  수 μžˆλ‹€κ³  ν•œλ‹€. λ§Œμ•½, 컴퓨터가 μ‚¬μš©μžμ—κ²Œ 정보λ₯Ό μž…λ ₯ λ°›μ•„μ•Όν•  λ•Œ, μš°λ¦¬κ°€ 정보λ₯Ό λͺ¨λ‘ μž…λ ₯ν•˜κΈ°λ₯Ό κΈ°λ‹€λ €μ•Ό ν•œλ‹€λ©΄, μš°λ¦¬κ°€ 1 / 1μ–΅ 초 μ•ˆμ— ν•˜λ‚˜μ˜ 값을 μž…λ ₯ν•˜μ§€ μ•ŠλŠ” ν•œ μ»΄ν“¨ν„°λŠ” κ·Έλ™μ•ˆ 계속 λŒ€κΈ°ν•˜κ³  μžˆμ–΄μ•Ό ν•œλ‹€. CPUμž…μž₯μ—μ„œλŠ” μ†ν„°μ§€λŠ” 일이 아닐..

728x90