Java54 [java] String의 메모리 저장 방식 오늘 치과를 갔는데 20~30분 기다려야한다고 해서 되게 간단한 코딩테스트를 풀었다. 금방 풀고 다른 분 풀이를 보며 모르는 걸 검색하다가 우연히 string의 메모리 저장방식에 대한 글을봤다. 예전에 이 부분을 공부했었는데 꽤 잊어버려서 내 블로그에 예전 글들도 다시보고 다른 블로그 글도 보면서 공부했다. 1. String 객체 메모리 할당 String은 참조 자료형이므로 stack영역에 참조값(heap메모리에 저장된 주소값)을 저장하고, heap영역에는 참조값이 가리키는 데이터값이 저장된다. //string, 메모리구조 String[] a = null; System.out.println(a); // null ->stack영역 공간 할당 a = new String[] {"안녕"}; // Heap 영역에.. 2021. 10. 14. [세미프로젝트] 시연, 코드리뷰 약 한 달동안 진행한 세미프로젝트가 끝났다. 다음은 시연영상과 코드리뷰 영상이다. 혹시 내 글을 보시는 분이 있다면 많이 보시고 후기를 댓글로 남겨주시면 참고해서 어떤 걸 더 노력해야할지 배우고 싶다...ㅋㅋㅋ(호옥시 보시는 분이 계시다면 부탁드립니다!!ㅎㅎ) 시간이 부족할 것 같아서 말도 빠르게 하고 이것저것 많이 생략해서 정말 아쉬움이 크지만 그래도 이번을 통해 다음에는 더 천천히 많이 담아야겠다고 느꼈다. 프로젝트를 하면서 블로그에 남기려고 했는데 늘 맘이 조급해서 그러지 못했지만 앞으로 파이널하면서 필요한 부분은 다시 복습하면서 블로그에 글도 남기고 해야겠다. 그리고 나중에 파이널 영상을 찍기 전에 이 글을 다시 보고 그때는 이렇게 아쉬움이 남도록 하지 않아야겠다!! 1. 시연 영상 이번 세미프로.. 2021. 9. 24. [세미] DB 연동_테이블 분할 고민중 현재 MYPLAN테이블을 보면 PLAN_COTENT컬럼에 ","로 PLACE_NO를 넣어주고 있다. 나는 이렇게 PLACE_NO로 저장하고 나중에 이걸 뽑아서 값을 다시 들고와야지라고 생각했는데 비효율적인 것 같고 애초에 하나의 값이 저장된 것이 아니니까 문제가 있는 것 같아서 테이블을 분할하는 방법에 대해 고민을 많이 했다. 분할한다면 아래와 같이 PLAN_NO를 FOREIGN_KEY로 하는 테이블을 생성하여 하나의 속성에 하나의 값만 들어가도록 해주려고 한다. 기껏 INSERT되는 걸 보고 기뻤는데 다시 테이블도 삭제해줘야하고 이클립스에서 SERVICE랑 DAO도 다시 만져줘야하다니 흑흑 아쉽고 바꾸기 싫지만 그래도 맞는 방향으로 가는게 좋겠지 사실 이런식으로 해줘야 여행일정이 나처럼 하루가 아니라 .. 2021. 9. 6. [Java] Static 변수,메소드,싱글톤 패턴 static은 메모리에 한번 올려지면 어느 곳에서나 공통으로 사용이 가능하고, static메소드는 객체를 생성할 필요없이 클래스명.메소드명으로 사용가능하다고 알고 있었는데, JDBC를 공부하면서 나와서 확실히 공부해두고 싶어서 복습차 공부해보았다. 점프투자바 페이지에서 static을 설명한 걸 봤는데 첨 공부할때 보다 이해도도 높고 또 '아 맞다 이런 것도 있었지'하고 다시 생각나는 것들도 있어서 정리해두려 한다! (지금 셤공부도 해야하고 세미플젝도 해야하고 sqld시험준비도 해야하는데 넘 바쁘지만 static을 내가 쓴 게 아닌 다른 사람이 쓴 코드로 보면서 이해하니 너무 좋아서 정리하고싶어졌다...차근차근 해야지...쥬륵) Static 변수 public class HousePark { static S.. 2021. 8. 28. [Java] 컬렉션프레임워크_Map Map 인터페이스 키(key)와 값(value)으로 구성되어 있으며, 키와 값은 모두 객체이다. 키는 중복저장을 허용하지 않는 Set방식이고, 값은 중복저장이 가능한 List방식이다. 따라서 키를 중복하여 저장하려는 경우에는 기존에 있는 키에 해당하는 값에 덮어씌운다. 구현 클래스로는 HashMap, HashTable, LinkedHashMap, TreeMap, Properties이 있다. 1. HashMap 선언 및 할당 key 값은 String, vale는 Student형인 stdMap 객체를 생성하였다. 아래와 같이 키 값은 보통 String으로 하는데 이는 int인 경우 index로 관리하는 ArrayList와 차이가 없기 때문이다. HashMap stdMap = new HashMap(); 2-1.. 2021. 7. 19. [Java] 반복문_아쉬운 점 미니프로젝트때 같은 팀이었던 오빠가 전공자고 잘 하셔서 이거 아냐고 예전팀 단톡에 물어보셨는데 알지 못했다,,, 흑흑 평소에 쓰던거랑 달라서 바로 멘붕이 와버렸지만 그래도 다시 알던 개념들을 되짚어가며 내 허점을 파악할 수 있어서 정말 좋았다!! 듣고보니 다 아는건데 왜 그랬을까 정말로 너무너무너무 아쉽지만 압박면접 때 나오더라도 이제는 자신있게 대답할 수 있다! 흑흑 아래 식의 결과값은 어떻게 나올까? for(int i=0, j =0; i < 10 ;i++,++j) { System.out.println(i); System.out.println(j); } 1. 일단 실행이 되는걸까? 정답은 Yes! 1) int i 와 j 가 동시에 있어도 가능하다! 2) j는 조건식이 없지만 i가 조건식이 있기때문에 무.. 2021. 6. 26. [Java] double 계산오차 1. 문제상황(코드) 아래 코드를 보면 각 사원의 연봉을 사용자로부터 입력받고 그 값에 inArr에 있는 double값인 인센티브를 곱해서 salary를 구한다. C사원의 인센티브 포함 연봉을 구하기 위해서 double형 값인 2600에 double형 값인 0.15를 곱하여 salary를 구했는데, 2989.9999999999995 라는 이상한 실수가 나왔다!! 2. 원인 자바에서 실수인 float과 double은 부동소수점 방식으로 저장이 되는데, 이때 근사값으로 저장이 된다. 부동 소수점 방식(Floating-Point Number Representation)은 실수를 부호부(sign), 가수부(Mantissa) 그리고 지수부(Exponent)로 나눈다. 그리고 나눠진 부호부, 가수부, 지수부는 각각.. 2021. 6. 23. [코테] level1 - 문자열 프로그래머스 사이트에서 level1문제 중 하나이 '문자열 다루기 기본'을 풀었다. https://programmers.co.kr/learn/courses/30/lessons/12918 1. 문제 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 2. 내 풀이 //문자열다루기 기본 public boolean solution1(String s) { boolean answer = false; if(s.length()==4 || s.length()==6) { for(int i=0; i, 0) ? false:true; } } 1) split() -> Stri.. 2021. 6. 23. [Project] ClassCastException, StreamCorruptedException 프로젝트를 하면서 이런 걸 올리고 싶었는데 하는 도중에는 정말 여유가 없었다ㅎㅎ 내가 너무 못하는 것만 같아서 새벽 5시까지 하고 해결해놓고 자고 하느라고ㅠㅠ 그래도 나도 열심히 했고 다른 분들도 열심히 해주시고, 오류를 잘 고치시는 분이 계셔서 가끔 찾아가서 여쭤봐서 나름 빨리 해결했다!! 교육할때 퇴실큐알을 꼭 찍고 퇴실을 해야하는데, 그것도 잊을만큼 여유가 없어서 결석이 억울하게 하나 생길정도로 여유가 없긴 했지만ㅋㅋㅋㅋ 그래도 틈틈히 코드는 복사를 해둬서 조금이라도 해뒀으니 다음 프로젝트 전까지는 다 올려야겠다. ClassCastException 식당에서 음식메뉴를 선택하고 결제하기를 누르면 Order객체로 주문날짜, 음식점명, 메뉴명 등등 여러가지 값을 "order_list.txt"파일에 저장하.. 2021. 6. 17. [Java] 컬렉션 프레임워크 - ArrayList Collection 컬렉션 프레임워크란? 자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 컬렉션 프레임워크는 java.util 패키지에 포함되며 크게 List 인터페이스 , Set 인터페이스 , Map 인터페이스로 주요인터페이스를 정의할 수 있다. List와 Set은 최상위 클래스인 Collection을 상속하고 Map은 Collection을 상속하지 않는다. 각각은 여러 종류를 가지는데 예를 들어 List의 종류에는 LinkedList, Vector, ArrayList 등이 있다... 2021. 6. 16. [미니프로젝트] 미니프로젝트 끝! 오늘 자바 swing을 이용한 Gui 미니프로젝트가 완전히 끝났다! 교육을 들은지 3~4주 정도후인 5월 24일부터 시작했고 3주가 조금 넘는 기간동안하여 드디어 마무리를 했다. 대학을 다닐때는 팀플 과제를 많이 했었지만 그때와는 달리 지금은 완전히 모르는 분들이고 나이대도 다양하다보니 대학때 수없이 했던 팀플과는 달리 꽤 낯설었다. 처음 배달주문 프로그램을 기획할때는 이렇게 구현을 할수있겠지! 라고 속편히 생각하고 기획을 했는데 만들고 보니 참 막막하고 어려운 수준이었다. 그래도 끝까지 포기하지 않고 팀원분들 모두 다같이 으쌰으쌰하여 최종적으로 원하던 그림까지 완성할 수 있었다. 처음에는 깃허브도 잘 사용을 못해서 너무 힘들었다. 로컬 파일을 만들어서 거기에 저장을 하라고 하셨는데 사실 git에서 만들.. 2021. 6. 16. [Java] IO(입출력)_스트림 IO(입출력) IO란 Input과 Output의 약자로 입력과 출력, 간단히 줄여 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램 간의 데이터를 주고받는 것을 말한다.이때 입출력 데이터를 처리할 공통적인 방법으로 스트림을 이용한다. Stream(스트림) : 입출력장치에서 데이터를 읽고 쓰기 위해서 자바에서 제공하는 클래스 스트림은 운영체제에 의해 생성되는 가상의 연결 고리를 의미하며, 중간 매개자 역할을 한다. 외부입력장치(키보드) 또는 외부파일의 데이터를 읽어 프로그램으로 도착하는 경우 입력스트림(InputStream), 프로그램이 데이터를 보내서 모니터에 출력하거나 파일로 출력되는 경우 출력스트림(OutputStream)이라고 한다. 이러한 스트림은 한방향으로만 통신할 수 있는 .. 2021. 6. 1. 이전 1 2 3 4 5 다음