728x90
반응형

Java 45

대체 JVM이 무엇이기에 Java를 공부하는 나를 이토록 괴롭히는거니?

JVM: Java Virtual Machine 자바 가상 머신 자바 프로그램을 실행하는 데 사용되는 가상 컴퓨터를 의미한다. 사용자의 컴퓨터에는 JRE가 설치되어 있어야만 Java 애플리케이션을 실행할 수 있고 JRE는 사용자가 웹 브라우저를 통해 Java 애플리케이션을 사용하는 동안에 필요한 런타임 환경이다. JVM 특징 1. JVM은 Java로 만들어진 애플리케이션을 컴파일(java compiler)해서 얻은 바이트 코드를 컴퓨터가 이해할 수 있는 기계어로 변환해 준다. 2. Java라는 특정 언어를 바로 기계어로 컴파일하지 않기 때문에 운영체제에 종속적이지 않고 독립적이다. java compiler : 자바 소스 코드를 JVM이 이해할 수 있는 바이트 코드로 변환하는 작업 바이트 코드 : 자바 소스..

Java 2024.03.12

quartz 중복 방지, quartz 중복 실행 해결, trigger 실행 카운트, 참고만해주세요

쿼츠 중복 해결을 바로 참고하시려면 아래로 이동해주세요! 내가 속한 회사에서 운영하는 플렛폼은 2개의 프로젝트로 운영되고 있다. A프로젝트에서는 쿼츠를 돌렸을 때 중복 실행이 되지 않아 쿼츠를 실행할 기능들을 모두 A프로젝트에서 구현하고 있었다. B프로젝트에서 쿼츠를 돌리면 중복 실행이 되어 쿼츠 구현을 하고 있지 않았으나 이번에 나는 B프로젝트의 중복되는 쿼츠 부분을 어떻게든 고치고 싶었다. 오기가 생겼다. 사실 이미 B프로젝트에 작업을 해버렸고, B프로젝트 쿼츠가 안된다고 안 쓸수 없지 않은가.... 너무나도 오기가... 생겨서 pc랑 싸울뻔... 일단 한 두달 전쯤에 톰캣 로그에서 쿼츠 스레드가 종료되지 않은채로 남아있다는 로그를 아주 많이 본적이 있었다. 이를 해결하고 싶었지만 당장 어떻게 해결을..

Java 2023.05.16

[java] 배열 출력하는 방법 - 배열을 출력하는 가장 쉬운 방법 - java.util.Arrays

Arrays.toString(); import java.util.Arrays; public class PrintArray { public static void main(String[] args) { String[] arr = {"ABC","DEF","GHI"}; System.out.println(Arrays.toString(arr)); } } // 출력 : [ABC, DEF, GHI] java 를 사용할 때 String[] String 배열을 텍스트로 출력하려고 하면 텍스트가 출력되지 않고 객체가 저장되어 있는 주소값이 변수에 대입되어 주소값을 출력해주는 것을 볼 수 있다. 이런 경우 String[]에 들어있는 데이터를 출력해볼 때, Arrays를 사용하여 배열에 들어있는 데이터를 출력해볼 수 있다.

Java 2021.08.18

[ java ] 다운캐스팅( down casting)

Animal ani = new Human(); 생성된 인스턴스 Human은 Animal 형이다. 이렇게 Animal형으로 형 변환이 이루어진 경우에는 Animal 클래스에서 선언한 메서드와 멤버 변수만 사용할 수 있다. Human 클래스에서 더 많은 메서드가 구현되어 있고 다양한 멤버 변수가 있다고해도 자료형이 Animal형인 상태에서는 사용할 수 없다. 필요에 따라 다시 원래 인스턴스의 자료형(Human)으로 되돌아가야 하는 경우가 있다.이렇게 상위 클래스 형으로 형 변환되었던 하위 클래스를 다시 원래 자료형으로 형 변환하는 것을 다운캐스팅(down casting)이라고 한다.

Java 2021.02.07

[ java ] sts 설치 (version: sts-4.9.0)

https://spring.io/tools 최신버전부터는 jdk 버전 11이상 설치, 사용이 가능하다고 한다. 기존에 1.8을 사용했어서 sts만 새로 설치하고 실행을 시키니 오류 발생. jdk 14 설치 https://www.oracle.com/kr/java/technologies/javase/jdk14-archive-downloads.html C:\Program Files\Java\jdk-14.0.2\bin Program Files 폴더 안에 Java 폴더를 만들고 그 안에 jdk 폴더를 붙여넣기. 고급 시스템 설정 메뉴에서 환경변수를 아래와 같이 수정해준다. '새로만들기'로 위와 같이 변수 이름과 변수 값을 입력한다. 변수 값: 설치한 jdk의 bin폴더 내에서의 위치. %JAVA_H..

Java 2021.02.07

[ JUnit 5 ] 기초 복습 / Test Method , Lifecycle Method 종류

Test Method 종류 @Test @RepeatedTest @ParameterizedTest @TestFactory @TestTemplate실제 테스트하고자 하는 테스트를 넣는 클래스 Lifecycle Method @BeforeAll @AfterAll @BeforeEach @AfterEachTest의 라이프사이클에 따라 실행되는 메서드 Lifecycle Method @BeforeAll 테스트 Class 기준으로 테스트 메서드들이 실행되기전 실행 JUnit 4의 @BeforeClass 역할 @BeforeEach 각 테스트 메서드가 실행되기전 실행 JUnit 4의 @Before 역할 @AfterAll 테스트 Class 기준으로 테스트 메서드들이 실행된 후 실행 JUnit 4의 @AfterClass 역할 ..

JUnit 5 2021.01.06

[ java ] Duration.ofSeconds, Duration.ofMillis 사용법

Test를 할 때 주로 사용 Duration.ofSeconds() Duration.ofMillis() 테스트를 할 때, 해당 메서드의 실행 시간을 확인하는 역할을 한다. 예시 @Test @DisplayName("스터디 시작") void create_new_study() { assertTimeout(Duration.ofMillis(100), () -> { new Study(10); Thread.sleep(300); }); } 해당 메서드의 실행종료까지 소요시간을 확인해서 0.100s를 초과하는 경우에 테스트는 실패한다. 메서드 실행 시간을 확인하기 위해서 Thread.sleep을 사용하여 테스트 실패를 유도했다. 위의 코드는 메서드가 모두 실행이 된 후(300 millis를 잠재훈 후)까지 시간을 확인해서..

Java 2021.01.05

listener란?

# 리스너란? (listener) - 리스너는 단어의 뜻으로 보자면 (소리를)듣는 사람, 청취자이다. 프로그래밍에서의 리스너는 무언가 소리를 듣는 사람을 뜻하기 보다는 ``` 특정 이벤트(특정한 사건)가 발생하기를 '귀 기울여' 기다리다가 실행되는 Component(메서드나 함수)를 말한다. 리스너는 이벤트가 발생함과 동시에 특정 행동을(메서드나 함수를 실행)하는데, 이것을 이벤트 핸들링이라고 한다. 따라서 리스너를 이벤트 핸들러라고 부르기도 한다. ```

IT 유용한 정보 2020.12.23

[ java ] 삼항 연산자 사용법

연습 1 package algo2; import java.util.Scanner; public class Main { public static void main(String[] args) { String test = "HI"; // test가 HI와 같으면 int num은 1, HI와 같지 않다면 int num은 2 int num = ( test.equals("HI") ? 1 : 2 ); System.out.println("num : " + num ); // test가 hi와 같으면 int num2은 1, hi와 같지 않다면 int num2은 2 int num2 = ( test.equals("hi") ? 1 : 2 ); System.out.println("num2 : " + num2); } } 자바에서 ..

Java 2020.12.13

[ 알고리즘 기초 100제 ] 1번 학생이름 저장 및 검색 (예제 만든자 풀이)

public class Student { private String name; private int id; public Student(String name, int id) { super(); this.name = name; this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getId() { return id; } public void setId(int id) { this.id = id; } } import java.util.ArrayList; import java.util.Scanner; public class main { public ..

Java 2020.11.30

[ Spring Boot ] pom.xml에 필요한 dependency

JAVA에서 JSON 데이터 만들때 필요한 maven com.googlecode.json-simple json-simple 1.1.1 JSP 엔진(JSP 파일을 사용하기 위한? yml에 jsp 바로 연결해주는 mybatis ~ dto ~ jsp 파일로) org.apache.tomcat.embed tomcat-embed-jasper provided JSTL javax.servlet jstl SQL 로거 DriverSpy 노릇 org.bgee.log4jdbc-log4j2 log4jdbc-log4j2-jdbc4.1 1.16 https://mvnrepository.com/artifact/com.google.guava/guava com.google.guava guava 29.0-jre 메일을 발송하기 위한 org..

Java 2020.11.25

[ Java ] 상속 protected 설명

[ Java ] 상속 protected 설명 - 외부에 오픈은 되지 않지만 자식에게 상속은 가능한. - 자식이 자유롭게 변수를 사용할 수 있다. ※ private를 사용해서 getter, setter를 주로 사용했지만 일손을 줄이기 위해서 상속을 해주고 protected로 변수 선언을해서 자식 클래스가 자유롭게 사용할 수 있도록 한다. - private로 한다면 public 메서드로 getter, setter 메서드를 만들어서 사용해야 한다. - protected로 변수를 선언한다면 상속을 받은 자식 클래스는 원하는대로 변수를 사용할 수 있다. - 굳이 getter, setter를 해줄 필요가 없다.

Java 2020.09.29

SQL, java 게시판 연결 기초 코드 분석, 이해, 정리

window -> cmd -> c:\xampp\mysql\bin\mysql.exe -u root -p -> enter Welcome ~~~~ 이 나오지 않으면 아무리 eclipse를 실행해도 연결되지 않은 거라 eclipse와 SQL을 사용할 수가 없다. ★ MariaDB 연결 여부를 확인하기 위한 용도(exception .. 에러를 굳이 확인하지 않아도 연결 여부 확인 방법) 1. class DbConnection 을 만들고 SQL와 연결하는 메서드, 코드를 작성한 후 꼭 해당 메서드를 호출해야 연결이 된다. 연결하는 코드를 작성해놓고 해당 메서드를 호출하지 않으면 절대 SQL과 연결되지 않는다. 2. DriverManager.getConnection(url, user, password); Driver..

Java 2020.06.17

Git, Github 중요자료(본인 작성), github 사용법

※ [ GITHUB 최초 push하는 방법 & 오류 해결 방법 ] == 최초 push == 1. git init (현재 디렉터리에 Git 저장소를 생성한다.) 2. git status (장바구니 상태를 확인한다.) 3. git add . 입력 (현재 folder에 있는 모든 것을 장바구니에 담는다.) 4. git commit -m "commit 내용" 입력 5. git remote add origin https://github.com/아이디/저장소명.git 입력 ☆ 혹시라도 저장소 연결을 잘못했다면? git remote remove origin 입력 -> origin 이라는 변수에 담은 저장소를 삭제한다. 6. git remote -v 입력 ( fetch, push 2개 나오는지 확인, 잘 등록되었는지 ..

GIT, github, gitlab 2020.06.15

JDBC

JSBC(Java Database Connectivity) 자바 이용한 데이터베이스 접속과 SQL 문장의 실행, 실행결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약 자바 프로그램내에서 SQL문을 실행하기 위한 자바 API SQL과 프로그래밍 언어의 통합 접근 중 한 형태 JAVA는 표준 인터페이스인 JDBC API를 제공합니다. 데이터베이스 벤더, 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver)를 사용합니다. JDBC를 이용한 프로그래밍 방법 1단계 : import java.sql.*; 2단계 : 드라이버를 로드한다 -> 반드시 선행되어야 함 3단계 : Connection 객체를 생성한다. -> DB에 접속 4단계 : Statement 객체를 생성 및 질의 수행 -> ..

Java 2020.06.15

HTML 한글 깨짐 방지(해결 방법)_이클립스

HTML 한글 깨짐을 방지하기 위해서는 코딩을 할 때, 우선적으로 작성해야 하는 문구가 있다. head, foot 2개의 HTML파일을 생성하여, 이클립스와 호환해서 사용할 수 있다. 다만 head, body 열고 닫는 태그를 나눠서 작성해주고 그 가운데에 이클립스에서 작업한 내용을 더해준다. (샌드위치처럼..) html 코드를 작성하기 위해 사용한 프로그램은 Visual Studio Code로 을 입력해도 웹페이지에서 한글이 깨지는 경우에는 연결한 프로그램인 이클립스의 환경을 동일한 UTF-8로 필히 변경을 해주어야 한다. Window - preferences - General - Workspace - Text file encoding - Default(MS949) ->> ..

IT 유용한 정보 2020.06.11

float, double, int, long, byte, short type 범위, Byte

DataType Byte Min Max byte 1byte -128 127 short 2byte -32768 32767 int 4byte -2147483648 2147483647 long 8byte -9223372036854775808 9223372036854775807 float 4byte 1.4E-45 3.4028235E38 double 8byte 4.9E-324 1.7976931348623157E308 실수 타입 2가지 float과 double 중 소수점을 담을 수 있는 범위와 Byte에 차이가 있다. 더 많은 소수점을 담을 수 있는 double이 8byte로 더 큰 것을 확인 할 수 있다.

Java 2020.06.03

정수 타입(int, long)

정수 타입은 int, long 2가지가 있다. 정수 타입 적용 범위 int -2147483648 ~ 2147483647 long -9223372036854775808 ~ 9223372036854775807 적용 범위가 더 큰 long type은 int type의 정수를 담을 수 있지만, int type은 long type의 값을 담을 수 없다. 담아야 한다면 강제형변환하여 값을 저장한다. ★ long num = 3823472835221L ; num 변수를 초기화 할때는 타입이 long이므로 정수값 끝에 L을 입력해주어야 한다.

Java 2020.06.03
728x90
반응형
LIST