분류 전체보기
-
3. Java 문자열(String) 다루기프로그래밍언어/Java(초급) 2020. 3. 27. 02:25
안녕하세요 현우입니다. 이번 포스팅은 [ String (문자열)다루기 ] 입니다. reference https://docs.oracle.com/javase/8/docs/api/index.html Java Platform SE 8 docs.oracle.com 1. String 클래스의 인스턴스 생성 기존의 클래스들은 키워드 new을 이용해서 인스턴스를 생성 했지만, String의 인스턴스는 큰따옴표만으로도 생성이 가능하다 String str1 = "Hello World" 대입연산자(String str1) 의 왼편은 인스턴스 생성시 반환되는 참조값의 저장을 위한 참조변수 일뿐이고 실제 인스턴스 생성은 대입 연산자의 오른편에서 이루어진다 System.out.pringln("Hello JPA!"); printl..
-
1. BufferReader VS Scanner 차이점프로그래밍언어/Java(초급) 2020. 3. 27. 01:00
BufferReader : from JDK 1.1 Scanneer : from JDK 1.5 1. Scanner 은 버퍼리더 보다 훨씬 활용적이다. 스캐너는 정수 값으로 int, short, long, 소수값으로 float,double를 구분지어 읽어들일 수 있고 String 값도 읽을 수있다. 반면에 BufferReader은 문자열 String값 밖에 읽지 못한다. 2. BufferedReader은 Scanner에 비해 상당히 큰 버퍼를 차지한다. Scanner의 경우 (1KB) , BufferedReader은 (8KB) , 이것은 즉 긴 문자열이 포함된 파일을 읽을 시에는 BufferedReader을 추천하지만 내용이 짧을경우 Scanner을 사용하는 것을 추천한다. 3. BufferedReader은..
-
1. MySQL Workbench 화면구성Database/Mysql 2020. 3. 26. 19:39
참고서적 https://book.naver.com/bookdb/book_detail.nhn?bid=10652258 이미지 썸네일 삭제 이것이 MySQL이다 『이것이 MYSQL이다』는 MYSQL의 고급 기술을 다루는 기술서가 아니다. 실무 환경에서 이뤄지는 MYSQL의 실제 사용 사례를 실습을 통해 학습자가 체험하면서 배울 수 있게 한다. 따라서 철저하게 MYSQL, 데이터베이스를 처음 시작하는 학습자 수준에 구성과 난이도를 맞추었다. 책에 수록된 실습은 책에 있는 그대로 이뤄진다. book.naver.com 1. MySQL 연결창 대표사진 삭제 사진 설명을 입력하세요. root 는 사용자로 서버는 자신의 컴퓨터를 의미하는 localhost에 포트는 3306번호로 접속하도록 설정되어 있다. 다른 서버로 접..
-
6. Spring에서 바이트 코드 조작 활용 예프로그래밍언어/Java(중급) 2020. 3. 26. 19:36
ComponentScan 어노테이션 프로그램분석 해당위치 부터 모든 패키지를 탐색하면서(하위포함) 모든 어노테이션을 찾아서 bin으로 등록한다 (@Service, @Repository, @Configuration...) class 설명 - ASM사용 This implementation is based on Spring's - {@link org.springframework.core.type.classreading.MetadataReader MetadataReader} - facility, backed by an ASM {@link org.springframework.asm.ClassReader ClassReader}. - @author Mark Fisher - @author Juergen Hoeller ..
-
5. 바이트코드 조작마술프로그래밍언어/Java(중급) 2020. 3. 26. 17:48
Moja.java public class Moja { public String pullOut() { return ""; } } Masulsa.java public class Masulsa { public static void main(String[] args) { System.out.println(new Moja().pullOut()); } } 아무것도없는 moja클래스를 호출하여 "Rabbit"을 콘솔에 찍히게 한다. public class Masulsa{ public static void main(String[] args){ try{ new ByteBuddy().redefine(Moaj.class) //모자클래스 재정의 .method(named("pullOut")).intercept(FixedValu..
-
4. 바이트코드 조작프로그래밍언어/Java(중급) 2020. 3. 26. 17:13
코드 커버리지는 어떻게 측정할까? 코드 커버리지? 테스트 코드가 확인한 소스 코드를 얼마만큼을 Test했는지 확인한다. JaCoCo를 써보자. https://www.eclemma.org/jacoco/trunk/doc/index.html http://www.semdesigns.com/Company/Publications/TestCoverage.pdf JaCoCo - Documentation Documentation Concepts See what this is all about and understand the basic ideas. Using JaCoCo Use JaCoCo tools out-of-the-box. Integrating JaCoCo Integrate JaCoCo technology with..
-
3. 클래스 로더프로그래밍언어/Java(중급) 2020. 3. 26. 15:45
클래스 로더 로딩, 링크, 초기화 순으로 진행된다. 로딩 클래스 로더가 .class 파일을 읽고 그 내용에 따라 적절한 바이너리 데이터를 만들고 “메소드” 영역에 저장. 이때 메소드 영역에 저장하는 데이터 FQCN (Fully Qualified Class Name) 클래스 | 인터페이스 | 이늄 메소드와 변수 로딩이 끝나면 해당 클래스 타입의 Class 객체를 생성하여 “힙" 영역에 저장. 링크 Verify, Prepare, Reolve(optional) 세 단계로 나눠져 있다. 검증: .class 파일 형식이 유효한지 체크한다. Preparation: 클래스 변수(static 변수)와 기본값에 필요한 메모리를 준비하는 과정 Resolve: 심볼릭 메모리 레퍼런스를 메소드 영역에 있는 실제 레퍼런스로 교..
-
2. JVM 구조프로그래밍언어/Java(중급) 2020. 3. 26. 15:16
1. 클래스 로더 시스템 .class 에서 바이트코드를 읽고 메모리에 저장한다. 로딩: 클래스 읽어오는 과정 링크: 레퍼런스를 연결하는 과정 초기화: static 값들 초기화 및 변수에 할당 2. 메모리 메소드 : 클래스 수준의 정보 (pull package 이름, 클래스 이름, 부모 클래스 이름, 메소드, 변수) 저장. 공유 자원이다. 힙 : 객체를 저장. 공유 자원이다. (실제 인스턴스들을 저장) 스택 : 쓰레드 마다 런타임 스택을 만들고, 그 안에 메소드 호출을 스택 프레임이라 부르는 블럭으로 쌓는다. 쓰레드 종료하면 런타임 스택도 사라진다. (해당 쓰레드 내에 국한된다) PC(Program Counter) 레지스터 : 쓰레드 마다 쓰레드 내 현재 실행할 스택 프레임을 가리키는 포인터가 생성된다. ..