[Java] Volatile
·
Java
들어가기 전Volatile은 성능을 포기하고 변경된 값을 정확히 본다 생각하면 된다.CPU에서는 일반적으로 효율적인 처리를 하기 위해 캐시 메모리에 값을 불러오고, CPU는 캐시메모리에 있는 값을 사용한다.다음 문제를 한 번 보자public class VolatileFlagMain { public static void main(String[] args) { MyTask task = new MyTask(); Thread t = new Thread(task, "work"); log("runFlag = " + task.runFlag); t.start(); sleep(1000); log("runFlag를 false로 변경 시도")..
[Java] reverse()
·
Java
reverse()?reverse()는 주로 Collections 클래스나 StringBuilder 클래스를 사용하여 리스트나 문자열을 뒤집는 데 사용한다.자바가 아닌 파이썬의 경우에는 주로 List 객체에서 주로 사용된다.아래는 정렬 이후 reverse()를 사용해 내림차순 정렬을 한 코드의 결과 값이다. (개인적으로 코테 문제를 풀면서 처음으로 배운 부분을 스스로 적용한 부분이라 아직도 기억이 잘 나는중)  적용해보기 (reverse() x)reverse() 메서드를 사용하지 않을 때 내림차순 정렬은 어떻게 해야 할까?제일 접근 하기 쉬운 Bubble Sort로 내림차순에 대한 코드를 짠다면 다음과 같이 짤 수 있다Bubble Sort를 사용하니 임의의 공간인 temp를 만들어줘 비교를 통해 자리를 바..
[Java] Thread Join
·
Java
들어가기 전Join이란 뭘까?여러 개념에서의 Join이 있을 수 있겠지만 이번 글은 Thread 개념에서의 Join이다.Join에 대해 설명하기 전 다음 쓰레드 생명주기에 대해서 한 번 보고 가면 좋을 것 같다.당연한 말이겠지만, 멀티스레드를 구현하지 않는다면 Blocked, Waiting, Timed Waiting을 경험 할 수 없을 것이다.위의 3가지 상태의 경우는 멀티스레드를 통해 한 쓰레드가 동작중이고 그 과정에서 대기, 차단 등을 하는 과정이니.. Join ?Join의 역할은 아래의 사진과 같이 여러개의 스레드가 존재 할 때, 특정 스레드가 끝날 때 까지 다른 스레드를 대기하게 하는 역할을 한다이러한 역할을 고려할 때 Join은  세가지 상태중 Wating(대기)에 해당되며, Join을 호출 했..
[Java] Record
·
Java
들어가기 전record란걸 몰랐던 저는 스파르타에서 1차 프로젝트를 함께 하는 팀원덕에 새로운 자료형을 배우게 되었습니다.ps. 감사합니다 팀원1님,,   record란?코딩에서 record는 불변 객체 (immutable object)를 표현하기 위해 사용되는 데이터 구조입니다. 사용목적 :데이터의 불변성을 유지하면서 속성을 정의하고 처리할 수 있도록 함.이러한 목적을 갖고 있는 record는 "객체지향적 프로그래밍"에 적합합니다. 주요 특징 : 불변성(Immutable) : record는 기본적으로 불변객체이기 때문에 상태 변경이 없는 객체를 다루는데 유용함간결함(conciseness) : 기본생성자, toString(), equals(), hashCode() 등을 자동으로 구현해주기 때문에 코드가 ..
Spring [심화 2기] - AI 검증 비즈니스 프로젝트 (3조)
·
Sparta[심화 2기]
AI 검증 비즈니스 프로젝트 - GOAL백엔드 프로젝트 : 기획자, 웹디자이너,프론트 엔지니어의 기능/비기능 요구사항을 구체화 할 수 있다.팀 프로젝트 : 백엔드개발 팀의 일원으로 팀원과 협업을 통해 통합된 어플리케이션을 개발할 수 있다.AI서비스 : 생성형 인공지능 서비스(API)와 연동하여 어플리케이션에 AI기능을 개발 할 수 있다.API 명세서 https://functional-iron-b15.notion.site/API-1075724d1eee80cc81deee8e321250ca?pvs=4 API 명세서 | NotionMade with Notion, the all-in-one connected workspace with publishing capabilities.functional-iron-b15...
[Java] What is NullPointException?
·
Java
Null이란?흔히 코딩을 하다 보면 Null이란 값이 존재(?)하는데(존재한다는 표현이 맞지는 않을 수 있으나, 편의상 사용) 이 Null 이란 뭘까? 쉽게 카카오톡 선물하기를 떠올리면 된다.친구에게 선물을 하면 구매는 되었지만 배송지가 아직 입력되지 않아 특정기간(자동환불 되는 기간)동안은 주소지를 비워두는 것을 말한다.이 때 이 비워두는 것을 Null이라고 한다. 기본적으로 기본형(int , double, long, boolean)의 경우 자동으로 "0"과 "false"로 값이 초기화가 되지만, 참조형의 경우(ex : int[] students) 데이터에 접근하기 위한 주소를 저장하는 데이터 타입이기 때문에 주소지를 지정하지 않는다면 임의로 Null을 넣어두게 되며 이 때 NullPointExcep..
[Java] "float" vs "double" in precision
·
Java
어느정도의 토이프로젝트를 진행 할 수 있지만.. 기본개념없이 주먹구구식으로 Spring, Java, RDBMS(oracle)을 사용해 진행한 느낌이 심해 기초부터 다시 잡고자 Java 개념부터 다시 잡기 위해 김영한 강사님의 "코드로 시작하는 자바 첫걸음" 강의를 듣다 "실무에선 float 보단 double을 더 많이 사용한다. 정밀도에서 차이가 나기 때문이다"라는 말씀에 궁금증으로 찾아보게 되었다.Variable (변수)간단하게 프로그래밍에서 변수는 연관된 기호 이름과 쌍을 이루는 추상적인 저장 위치로, 알려지거나 알려지지 않은 데이터 또는 값으로 지칭되는 객체를 말한다.https://en.wikipedia.org/wiki/Variable_(computer_science)#:~:text=In%20com..