Java 76

[이것이 자바다] 자바 네트워크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

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

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

[Java] JVM의 메모리구조(가비지 컬렉션)/ 자바 메모리 구조

shs2810.tistory.com/5?category=670113 가비지 컬렉션(Garbage Collection)??? 자바 공부하면서, 앞에서도 메모리 구조 정리하면서 가비지, 가비지 이야기가 많은데,, 정확히 어떤 동작을 하는지, 어떤 것을 처리하는지 몰라서 찾아보았습니다. 1. 가비지 컬렉션 (Garbage Collec shs2810.tistory.com shs2810.tistory.com/4?category=670113 JVM 메모리 구조 JVM 메모리 구조는 어떤가... 1. JVM 메모리 구조 Method Area Heap Stack PC 레지스터 Native Method Stacks 1. Permanent Generation 2. New / Young Generation 3. Old Ge..

Java 2020.12.17

[Java] out of memory error 즉 OOME 에 대하여

stack 예외처리를 알아보던 중에 out of memory를 공부하게 되었는데 아주 잘 정리된 블로그를 발견했다. JVM까지 연결시켜서 설명해주는데 정말 내용이 좋다. 참고로 자료구조와 함께 배우는 알고리즘 입문(자바편)의 136페이지의 코드에서 OOME에 대해 나온다. 그 책도 읽어볼 만 하다. 간략하게 살펴보고 가겠다. OOME의 경우 특히나 대응을 하기가 쉽지 않다고 한다. 주로 개발이 대부분 완료되고 난 후에 사용자 테스트 쯤에 많이 발생하는 에러라고 한다. 그리고 주로 JVM Option 혹은 Dump 파일 분석을 통해 대응하게 된다고 한다. JVM Option Java의 장점은 JVM이 있는 곳이면 어디서든 동작하는 것인데 반면 디바이스 별로 동일한 성능은 보장되지 않는다고 한다. 그래서 O..

Java 2020.12.12

[Java] java 키워드 중 새로 배운것. assert, native, strictfp, volatile

자바 키워드를 나열해놓은 것을 따라 읽다가 처음 본게 있어서 적어본다. assert, native, strictfp, volatile 보통 널리 알려진 자바 기본 서적에서도 이걸 다루는 건 못봤다. 적어도 내가 읽은 책들에 한해서^^ native 같은 경우는 자바에서 다른 언어를 사용할 수 있게 만들어주는 키워드라고 한다. mommoo.tistory.com/71 여기에 진짜 잘 설명되어있음.. JVM은 만능이라고만 믿어왔는데, 운영체제에 깊게 접근하지 못해서 결국에는 운영체제에 깊은 접근이 가능한 언어를 사용하기 위해 JNI를 사용해서 native 키워드가 사용되는 것을 보면, 결국에 만능은 없는듯하다. JAVA - JNI 사용하기 오늘 포스팅은 Java JNI ( Java Native Interface..

Java 2020.12.12

[Java] Java JVM 메모리 구조와 이해

JVM은 운영체제와 상관없이 자바코드와 운영체제 사이에서 운영체제에 맞게 변경시켜준다. JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 용도에 따라 여러 영역으로 나눠서 관리한다. 그 영역이 메서드 영역, 힙 영역, 스택 영역이다. 1. 메서드 영역 JVM이 *.class 파일을 읽고 분석한 데이터를 여기에 저장한다. 2. 스택 영역 메서드 작업에 필요한 메모리 공간. 메서드가 호출되면 스택에 쌓이고 끝나면 스택에서 비워진다. 메서드 작업하는 동안 지역변수, 중간 결과등이 저장된다. 3. 힙 영역 인스턴스가 생성되는공간으로 객체에 대한 정보들이 저장된다. 아래 블로그에 잘 정리되어 있습니다. debugdaldal.tistory.com/156?category=925274 JVM(자바가..

Java 2020.12.10

[Java] Java 꿀팁모음

자바에서는 문자를 비교할 때 ==을 쓰면 주소를 비교하지만 mysql 다운받을때 mysql for excel을 체크해서 다운받아야만 엑셀 파일 읽을 수가 있다. JDBC 프로그래밍 WITH MYSQL 2020.11.06 자바 jdbc프로그래밍할때 mysql 연동해주는데. mysql 한동안 사용안하다가 사용하니까 연결할 수 없음. cannot connect to server가 떴음. 그냥 서비스에서 mysql80 다시 시작하기 눌러도 서비스 재시작할 수 없음이라고 뜸. 인터넷에 검색하니까. 이게 mysql 프로세스를 강제종료를 자주 했을때 발생하는 현상이라고 함. 혹은 이 문제이거나 아니면 my.ini 파일이 손상되었을때 발생한다고 함. my.ini 파일과 관련된 해결방법은 1. my.ini파일이 utf-..

Java 2020.11.19
반응형