분류 전체보기 441

[Java] 자바 리플렉션 - java Reflection이란?

책에서는 리플렉션을 잘 다루지 않는다. 사실 어느 경우에 사용하는지 아직 감도 안잡힌다. 간단하게 짚고 넘어가자. 대표적으로 스프링, 하이버네이트 등에서 Reflection을 사용한다고 한다. Reflection은 클래스의 구조를 개발자가 확인할 수 있고 값을 가져오거나 메소드를 호출하는데 사용할 수 있다고 한다. Reflection을 확인하기 좋은 예제를 하나 소개하겠다. 아래는 코딩테스트를 준비하면서 사용한 코드이다. 적절한 입력을 받고 이를 처리하는 코드인데 이에 대해서 main의 코드 맨 마지막에서 Reflection을 사용해서 직접 값을 출력해보았다. package 문제풀이.BOJ.문자열.구현; import java.io.BufferedReader; import java.io.InputStrea..

Java 2021.01.02

[이것이 자바다] 자바 네트워크2 공부 정리

이번 장은 자바 멀티플렉싱 서버와도 관련이 있다. NIO를 다루기 때문이다. 블로그들을 찾아보다가 NIO에 대해서 아주 잘 설명해주는 사이트들을 찾았다. jongmin92.github.io/2019/03/03/Java/java-nio/ Java NIO와 멀티플렉싱 기반의 다중 접속 서버 자바 NIO에 대한 소개와 NIO와 함께 도입된 자바에서 I/O 멀티플렉싱(multiplexing)을 구현한 selector에 대해 알아봅니다. I/O 멀티플렉싱(multiplexing)에 대한 개념에 대해 아직 잘 이해하지 못하고 있다면 jongmin92.github.io 이 블로그에서 기초적인 내용을 얻어낼 수 있었다. 링크된 사이트들이 몇 있던데, tutorials.jenkov.com/ Jenkov.com Threa..

Java 2021.01.01

[이것이 자바다] 자바 NIO 공부 정리

path package sec02.exam01_path; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Iterator; public class PathExample { public static void main(String[] args) { Path path = Paths.get("src/sec02/exam01_path/PathExample.java"); System.out.println("[파일명]"+ path.getFileName()); //파일명 얻기 System.out.println("[부모 디렉토리명]" + path.getParent().getFileName());//getParent하면 부모 디렉토리의 Path..

Java 2020.12.30

[이것이 자바다] 자바 네트워크1 공부 정리

이번 장을 공부할 때 예제에 FX가 쓰여서 FX 설치를 해주는데, 좀 문제가 생겨서 꽤나 애를 먹었다. 친구 말로는 버전? 이 차이가 나면 그럴 수 있다는데, 확실한건 그냥 마켓에서 다운받고 재시작하는 걸로는 사용할 수 가 없었다. 그런 증상이 나타나는 사람이 많은 것 같았다. 어느 블로그에 나온대로 하니 실행은 되었지만, 매번 프로젝트를 만들때마다 이렇게 해야 하나? 싶을정도로 귀찮은 과정이었다. 해당블로그는 다음과 같다. we-always-fight-with-code.tistory.com/36 JavaFX 설치와 이클립스 연동 JavaFX를 실행하기 위해서 뭐 이클립스 네온버전을 설치하라 어쩌고 하는데 하...깔기 싫어서 기존에 쓰던 오픈버전으로 세팅했다. 대신 세팅하는데 좀 애먹었다. ㅎㅛㅎ... ..

Java 2020.12.27

[이것이 자바다] 자바 스트림 공부 정리

stream_introduction package sec01.stream_introduction; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.stream.Stream; public class IteratorVsStreamExample { public static void main(String[] args) { List list = Arrays.asList("홍길동","신용권","감자바"); //자바 7이전에서 사용한 Iterator 이용하기 Iterator iterator = list.iterator(); while(iterator.hasNext()) { String name = it..

Java 2020.12.24

알고리즘 설명해주는 블로그

roka88.dev/98 기본 정렬 알고리즘의 종류와 정리 최종수정일자 : 2020-01-03 이 글은 이미 공부 했었으나, 정렬을 쉽게 정리하지 못하는 사람을 위해 정리하였다. 정렬의 종류도 많으며, 설명하기가 쉽지 않다. 동작은 다양하며, 머리속에 어렴풋이 roka88.dev ict-nroo.tistory.com/category/ICT%20Eng/Algorithm?page=5 'ICT Eng/Algorithm' 카테고리의 글 목록 (5 Page) 주니어 개발자가 성장하는 공간 ict-nroo.tistory.com

[Dev] 함수와 메서드의 차이

사실 똑같은 말인줄로 알고 있었다. 그러다 어느 날 함수와 메서드의 차이점도 모르는 프로그래머는 프로그래머도 아니다. 라는 어느 블로그의 글귀를 보고 난 뒤에야 이 두개가 다르다는 것을 알게 되었다....  함수는 독립적으로 존재하며, 작동하고 나서 사용자가 원하는 결과를 반환한다. 메서드는 클래스에 종속되어 존재하고, 해당 클래스에 대한 인스턴스가 생성되어야 사용할 수 있다.  그러니 독립적으로 존재한다? -> 함수클래스에 종속적이다.-> 메서드 이렇게 이해하자.

개발 정보 2020.12.23

[이것이 자바다] 자바 람다식 공부 정리

no_argument_no_return package sec03.exam01_no_argument_no_return; @FunctionalInterface //메소드가 하나인지 체크함. public interface MyFunctionalInterface { //함수적 인터페이스 -> 람다식으로 표현 가능 . public void method(); } package sec03.exam01_no_argument_no_return; public class MyFunctionalInterfaceExample { public static void main(String[] args) { MyFunctionalInterface fi; fi = () -> { String str = "method call1"; Sys..

Java 2020.12.22

[이것이 자바다] 자바 어노테이션 공부 정리

package sec15.exam01_annotation; import java.lang.annotation.*; @Target({ElementType.METHOD}) //적용대상은 메소드이다. @Retention(RetentionPolicy.RUNTIME) public @interface PrintAnnotation { //괄호 열고 닫고를 꼭 붙인다. 메소드는 아니다. String value() default "-"; int number() default 15; } package sec15.exam01_annotation; public class Service { @PrintAnnotation public void method1() { System.out.println("실행 내용1"); } @Pri..

Java 2020.12.20

[이것이 자바다] 자바 메모리 공부 정리

package javastudy2; /* Must - know 메소드 영역에는 클래스 코드들이 올라간다. 힙 영역에는 객체가 생성된다. 스택 영역에는 변수들이 생성이 된다. JVM은 OS에서 할당받은 메모리 영역 (Runtime Data Area)을 세 영역으로 구분한다. @메소드 영역 JVM을 시작할 때 생성된다. 로딩된 클래스 바이트 코드 내용을 분석 후 저장한다. 모든 스레드가 공유한다. @힙 영역 JVM을 시작할 때 생성된다. 객체/배열을 저장한다. 사용되지 않는 객체는 GC가 자동으로 제거한다. @JVM스택 스레드별로 생성한다. 메소드를 호출할 때마다 Frame을 스택에 추가한다. (push) 메소드가 종료되면 Frame을 제거한다. (pop) 추가 노트 main스레드가 생성이 됨과 동시에 JV..

Java 2020.12.20

[이것이 자바다] 자바 enum 공부 정리

package sec07.exam01_enum; public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY } package sec07.exam01_enum; import java.util.Calendar; public class EnumWeekExample { public static void main(String[] args) { Week today = null; Calendar cal = Calendar.getInstance(); //컴퓨터의 현재 날짜를 Calendar객체로 돌려줌. -> (getInstance()) int week = cal.get(Calendar.DAY_OF_WEEK); //오늘의 요일을 돌..

Java 2020.12.20

[이것이 자바다] 자바 쓰레드 공부 정리

한빛미디어에서 펴낸 "이것이 자바다" 책에 대한 강의가 유튜브에 올라와있는데, 상당히 친절하게 깊게 설명해준다. 조금 오래되긴 했는데, 그 점과는 별개로 내용이 좋다. 쓰레드 관련 강의부분에 대한 코드와 필기 내용을 올려둔다. 새로 접한 내용이 많아서 재밌다. Create Thread package sec02.exam01_createthread; import java.awt.Toolkit; public class BeepPrintExample1 { public static void main(String[] args) { //비프음을 5번 반복해서 소리나게 하는 작업. Toolkit toolkit = Toolkit.getDefaultToolkit(); for(int i = 0;i

Java 2020.12.20

[기술서적] 객체지향의 사실과 오해- 조영호 <북리뷰>

자바프로그래밍을 공부하던 중에 너무 따분해서 집어든 책이다. 사실 자료구조와 알고리즘을 자바코드로 공부하다가 뇌에 과부하가 걸려서 잠시 여기로 도피했다. 그런데 좀 편하게 읽으려고 집었는데, 오히려 알고리즘을 생각할 때보다 더 골똘히 생각하는 시간을 가지게 된 것 같다. 앨리스가 나오는 재밌는 책이라고 누누히 들어서 그 명성은 알고 있었다. 객체지향이란 무엇인지에 대해서 잘 설명해주는 책이라고, 아주 많이 들었다. 이제야 읽게 되었는데, 이 책을 읽으면서 어린왕자가 떠올랐다. 어린왕자가 세계적 위치에 서게 된 것은 시간이 지날 수록 나이가 들수록 다시 읽어보면 감회가 새롭다는 것이다. 느껴지는 것도 다르고, 메시지를 다르게 보게 된다는 것이다. 아직 난 나이가 많이 들지 않았고, 아직 경험이 적지만, 이..

[Java] 자바 네트워킹 socket 기본 코드 - Server/Client code

클라이언트쪽 기본 코드 간단한 기본 예제이다. package sec07_exam02_data_read_write; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.InetSocketAddress; import java.net.Socket; public class ClientExample { public static void main(String[] args) { Socket socket = null; try { socket = new Socket(); System.out.println("[연결 요청]"); socket.connect(new InetSocketAddress("..

Java 2020.12.18

DoublyLinkedList 코드

package list.doublylinkedlist.implementation; //양방향성이 있는 이중연결시스트. 더 많은 메모리를 사용하는 것이 단점임. public class DoublyLinkedList { private Node head; private Node tail; private int size = 0; private class Node{ private Object data; private Node next; private Node prev; public Node(Object input) { this.data = input; this.next = null; this.prev = null; } public String toString() { return String.valueOf(this..

반응형