swimminginthecode DIVE!

BACK/JAVA Basic 23

JAVA 자료 구조

최근 알고리즘 문제를 풀면서 기본기가 많이 부족하다는 걸 몸소 느끼는 중인데, 그중 하나가 자료구조!매일 쓰는 List (그것도 ArrayList 만) 와 Map (그것도 HashMap 만) 말고는 전혀 사용하지 않았는데...알고리즘 문제 풀이에서 훨~ 씬 쉽게 풀 수 있는 걸 저 두 개로만 풀어내려고 하니까 어렵기도 하고 비효율적이기도 하고그래서 자료구조를 정리해 보려고 한다 1. List 리스트순서가 있는 중복 가능한 컬렉션 요소들이 인덱스로 접근할 수 있기 때문에 순서가 중요한 데이터를 다룰 때 유용하다. 대표 구현체종류설명ArrayList동적 배열 기반, 인덱스 접근이 빠르지만 삽입 및 삭제가 비교적 느리다LinkedList연결 리스트 기반, 삽입 및 삭제가 빠르지만 인덱스 접근이 비교적 느리다2..

BACK/JAVA Basic 2025.04.16

JAVA 21

String, StringBuffer, StringBulider종류설명String한 번 생성되면 할당된 메모리 공간이 변하지 않는다. + 연산자 혹은 concat 메소드를 통해 문자열을 붙이려고 하면 새로운 String 객체를 만든 후 연결된 문자열을 저장하고, 그 객체를 참조하도록 한다. 한 번 생성된 객체의 내부 내용을 변화시킬 수 없는 것이다.StringBuffer문자열 연산 등으로 기존 객체의 공간이 부족하게 되는 경우, 기존의 버퍼 크기를 늘리며 유연하게 동작한다. 각 메소드별로 Synchronized Keyword가 존재하여, 멀티스레드 환경에서도 동기화를 지원한다.StringBuilder문자열 연산 등으로 기존 객체의 공간이 부족하게 되는 경우, 기존의 버퍼 크기를 늘리며 유연하게 동작한다...

BACK/JAVA Basic 2024.07.03

JAVA 20

디버깅JAVA 디버깅 도구는 일반적으로 중단점 설정, 코드 단계별 실행, 변수 모니터링, 표현식 평가, 호출 스택 검사와 같은 기능을 제공한다. 이를 활용하여 문제를 격리하고 필요한 수정 조치를 취할 수 있다.라인 부분 좌측을 더블클릭하면 브레이크 포인트 생성 가능 오른쪽 버튼 _> Debug as로 실행하면 브레이크 포인트에서 멈추고, 위 도구를 활용하여 멈춘 작업을 다시 재개할 수 있 단위 테스트 (JUNIT)JAVA에서 독립된 단위테스트*를 지원해 주는 프레임 워크단위테스트* : 특정 소스코드의 모듈이 의도한 대로 작동하는지 검증하는 테스트JUNIT 관련 어노테이션종류설명@Test테스트를 수행하는 메소드라는 의미JUnit은 각각의 테스트가 서로 영향을 주지 않고 독립적으로 실행되는 것을 원칙으로 하..

BACK/JAVA Basic 2024.05.09

JAVA 19

Stream다양한 방식으로 저장된 데이터를 읽고 쓰기 위한 공통된 방법을 제공Stream의 중간 연산 목록Stream의 최종 연산 목록 Stream 특징1. 데이터 소스를 변경하지 않음2. 일회용3. 작업을 내부 반복으로 처리함Stream  연산 종류종류설명중간 연산연산 결과가 스트림인 연산으로, 스트림에 연속해서 중간 연산 할 수 있음최종 연산연산 결과가 스트림이 아닌 연산으로, 스트림의 요소를 소모하므로 단 한 번만 가능지연된 연산최종 연산이 수행되기 전까지 중간 연산이 수행되지 않으며, 중간연산을 호출해도 즉각적으로 연산이 수행되지 않는다. 중간 연산은 단지 어떤 작업으로 수행되어야 하는지 지정해 주는 것이고, 최종 연산이 수행되어야 스트림의 요소들이 중간 연산을 거쳐 최종 연산에서 소모된다.

BACK/JAVA Basic 2024.05.08

JAVA 18

Lambda메소드를 하나의 식으로 표현한 것으로, 간략한 표현이 가능하며 메소드의 이름과 반환값이 없어지므로 익명함수라고도 한다.Lambda의 장·단점장점단점간결한 코드호출이 비교적 까다로움지연연산 수행으로 불필요한 연산 최소화stream을 사용할 경우 단순 for문이나 while문을 사용하면 성능이 떨어짐병렬처리 가능사용이 많아지면 오히려 가독성이 떨어짐Lambda 표현식매개변수 -> 함수몸체

BACK/JAVA Basic 2024.05.07

JAVA 17

PreparedStatementStatement 객체의 SQL은 실행될 때 매번 서버에서 분석해야 하는 반면 PreparedStatement 객체는 한 번 분석되면 재사용이 용이하다. 각각 인수에 대해 위치홀더를 사용하여 SQL문을 정의할 수 있으며, 이를 사용하면 SQL Injection 공격에서 벗어날 수 있다.// 예시try { sql = "INSERT INTO sangdata VALUES (?, ?, ?, ?)"; pstmt = conn.prepareStatement(sql); pstmt.setInt(1, co); pstmt.setString(2, na); pstmt.setInt(3, s); pstmt.setInt(4, da); pstmt.executeUpdate();} catch (Excepti..

BACK/JAVA Basic 2024.05.05

JAVA 16

eclipse, git 연동 About MariaDB Connector/JLGPL-licensed MariaDB client library for Java applications.mariadb.com원하는 버전으로 다운받은 뒤 직접 라이브러리에 추가해 주거나 maven 혹은 gradle을 사용한다.maven사용하는 라이브러리 뿐만아니라 해당 라이브러리가 작동하는 데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운받아 준다.gradle빌드 배포 도구로, 안드로이드 앱을 만들 떄 필요한 공식 빌드 시스템이며 JAVA, C/C++, Python 등을 지원한다.secure coding소프트웨어 개발 시 안전한 코드를 제작한다는 의미이며, 해킹을 비롯한 사이버 공격 대상이 될 수 있는 소프트웨..

BACK/JAVA Basic 2024.05.02

JAVA 15

modal새 모달 창이 열렸을 때는 기존에 있던 창을 사용하지 못하는 방식modaless어느 하나의 다이얼로그 창이 있어도 프로그램 제어권을 독점하지 않으므로 다른 작업을 할 수 있는 방식  JFrame, JPanel, JLabel...참고 블로그 : 자바 GUI 기초 (tistory.com) 주요 메소드종류설명setSize(너비, 높이)프레임 크기 설정setTitle("이름")프레임 이름 설정setVisible(true)프레임 출력 여부 설정setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)프레임 윈도우를 닫으면 프로그램 종료add(컴포넌트)프레임에 컴포넌트 추가setIconImage아이콘 이미지 설정System.exit(0)프로그램 종

BACK/JAVA Basic 2024.05.02

JAVA 14

AWTGUI프로그래밍을 위한 도구로, JAVA로 구현하는 것이 아닌 OS의 컴포넌트를 그대로 사용한다.AWT의 구성AWT관련 패키지는 모두 java.awt로 시작하며, AWT컴포넌트의 최상위 조상은 java.awt.Component 클래스이다.(메뉴 관련 컴포넌트 제외)SWINGAWT를 확장한 GUI 프로그래밍 도구로, AWT보다 많은 종류의 컴포넌트를 제공하며 OS의 컴포넌트를 사용하지 않고 JAVA로 구현한다.CONTAINER다른 컴포넌트를 포함할 수 있는 컴포넌트이며 add()를 사용하여 추가한다.종류설명독립적인 컨테이너독립 사용 가능, 다른 컴포넌트나 종속적 컨테이너 포함 가능종속적인 컨테이너독립 사용 불가(다른 컨테이너에 포함)LAYOUT종류특징BorderLayoutWindow Component..

BACK/JAVA Basic 2024.04.30