[Java] ArrayList.java (add 메서드 내부 동작)
Language/Java2024. 3. 19. 23:23[Java] ArrayList.java (add 메서드 내부 동작)

ArrayList가 가변배열이라는 건 알겠는데 한 번 늘 때 얼마나 늘어날까? 궁금해서 알아보았습니다. ArrayList 평소 알고리즘을 풀거나 비즈니스 로직을 개발하다보면 List 인터페이스를 구현한 ArrayList 혹은 LinkedList 클래스를 사용할 때가 많았습니다. 오늘은 문득 ArrayList.add() 라는 메서드를 수행하면 내부적으로 어떤 일들이 일어나는지, 배열 길이를 넘는 데이터를 저장할 때 어떤식으로 가변 동작이 일어나는지 궁금해서 클래스 내부를 한번 들여다보았고 한번 정리해보았습니다. ArrayList Concept 순서가 있는 데이터의 집합으로 ArrayList는 내부적으로 배열을 사용하여 데이터를 연속적으로 저장합니다. 또한 내부가 배열로 이루어져있다보니 길이를 넘어서는 데이..

Java#1 - 자바공부를 시작하며..
Language/Java2023. 4. 29. 00:11Java#1 - 자바공부를 시작하며..

프로그래밍 언어 중 하나인 자바에 대해 공부하기 위해 자바의 정석이라는 참고서를 구매하였습니다! 초반 부분은 여타 기본참고서와 비슷하게 변수부터 시작해서 배열까지 기본적인 개념들로 간단하게 자바에서 쓰이는 문법에 대해서만 포인트를 주며 가볍게 읽어봤습니다. 기존에 다른 프로그래밍언어를 접해보았다면 앞부분은 빠르게 넘기시는것도 괜찮을 것 같습니다. - JAVA? - 자바는 썬 마이크로시스템즈(Sun Microsystems, Incc. 이하 썬)에서 개발하여 1996년 1월에 공식적으로 발표한 객체지향 프로그래밍 언어입니다. 자바의 중요한 특징은 운영체제에 독립적(자바로 작성된 프로그램은 운영체제의 종류에 관계없이 실행가능)이라는 것입니다. 또한 풍부한 클래스 라이브러리(Java API)를 통한 강력한 기능..

C# 소켓 프로그래밍-1(서버-클라이언트 통신)
Language/C#2022. 11. 18. 17:08C# 소켓 프로그래밍-1(서버-클라이언트 통신)

현재 진행하고 있는 C#기반 메신저 프로젝트에서 소켓 프로그래밍을 사용할 기회가 생겨 정리하게 되었습니다. 우선 이 프로젝트의 목적은 비동기 소켓통신을 통하여 채팅중계서버를 구현하고, 같은 로컬에 있는 각각의 클라이언트에서 채팅을 주고받을 수 있도록 하는 것에 있습니다. 일단 한눈에 예제를 확인할 수 있게 콘솔앱으로 작성하였고, 아래는 서버 측 소스코드입니다. static void Main(string[] args) { //서버측의 소켓을 생성, 클라이언트와 통신할 연결방식 및 프로토콜 타입을 선언 Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //모든 네트워크의 클라이언트의 연결을 받..

image