Programming
-
서블릿 연습하려고 이클립스에 코드 작성 후 서버를 실행시켰는데 발생한 에러. 내가 사용하고자 하는 포트가 이미 다른 프로세스에서 사용 중이기 때문에 서버 시작을 위해서는 해당 프로세스를 종료하거나 포트 번호를 바꾸라고 하는 경고창이다. 이클립스를 재시작하거나 Run Configurations에 이미 등록되어 있는 파일을 삭제해 봐도 문제가 계속 발생했는데, 알고 보니 해결 방법은 매우 간단했다. cmd에 명령어 몇 줄만 치면 되는데, 관리자 권한으로 실행해야 한다. 다음과 같이 netstat -ano | findstr 8080을 입력하면 현재 해당 포트를 사용하고 있는 프로세스가 나온다. 만약 문제가 발생하는 포트 번호가 다르다면 해당 번호를 8080 대신 적으면 된다. 마지막 열에 있는 pid번호를 확..
Tomcat already in use 문제 해결하기서블릿 연습하려고 이클립스에 코드 작성 후 서버를 실행시켰는데 발생한 에러. 내가 사용하고자 하는 포트가 이미 다른 프로세스에서 사용 중이기 때문에 서버 시작을 위해서는 해당 프로세스를 종료하거나 포트 번호를 바꾸라고 하는 경고창이다. 이클립스를 재시작하거나 Run Configurations에 이미 등록되어 있는 파일을 삭제해 봐도 문제가 계속 발생했는데, 알고 보니 해결 방법은 매우 간단했다. cmd에 명령어 몇 줄만 치면 되는데, 관리자 권한으로 실행해야 한다. 다음과 같이 netstat -ano | findstr 8080을 입력하면 현재 해당 포트를 사용하고 있는 프로세스가 나온다. 만약 문제가 발생하는 포트 번호가 다르다면 해당 번호를 8080 대신 적으면 된다. 마지막 열에 있는 pid번호를 확..
2023.06.22 -
String에 대해서 String은 Java에서 제공하는 문자열을 위한 클래스로, 문자열을 저장하고 다루는데 필요한 메서드를 제공한다. 문자열을 만드는 방법은 두가지로, 문자열 리터럴을 지정하는 것과 생성자를 이용하는 것이 있다. String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); String str4 = new String("hello"); str1과 str2는 문자열 리터럴 "hello"의 주소를 저장하지만, str3과 str4는 각각 새로운 String 인스턴스를 생성한다. 따라서 이 경우 문자열을 비교해보면 다음과 같은 결과가 나온다. str1 == str2 // true str1.equals(str2) ..
[Java] String 클래스의 메서드String에 대해서 String은 Java에서 제공하는 문자열을 위한 클래스로, 문자열을 저장하고 다루는데 필요한 메서드를 제공한다. 문자열을 만드는 방법은 두가지로, 문자열 리터럴을 지정하는 것과 생성자를 이용하는 것이 있다. String str1 = "hello"; String str2 = "hello"; String str3 = new String("hello"); String str4 = new String("hello"); str1과 str2는 문자열 리터럴 "hello"의 주소를 저장하지만, str3과 str4는 각각 새로운 String 인스턴스를 생성한다. 따라서 이 경우 문자열을 비교해보면 다음과 같은 결과가 나온다. str1 == str2 // true str1.equals(str2) ..
2023.05.29 -
Thread의 스케줄링 스레드의 스케줄링 관련 메서드로는 sleep(), join(), interrupt(), yield(), stop(), suspend(), resume()이 있는데, 이 중 stop(), suspend(), resume()은 스레드를 교착상태(dead-lock)로 만들기 쉽기 때문에 deprecated 되어 사용하지 않는다. Multithreading 프로세스에서 여러 스레드가 같은 프로세스 내의 자원을 공유하며 생기는 문제점을 방지하기 위해 한 스레드가 진행 중인 작업을 다른 스레드가 간섭하지 못하게 막고, 이를 스레드의 동기화(synchronization)라 한다. 하지만 두 개 이상의 스레드가 동시에 같은 데이터에 접근하고 데이터를 변경하면 원하는 결과를 얻지 못하는 경우가 발..
[Java] Thread의 실행 제어 - interrupt()Thread의 스케줄링 스레드의 스케줄링 관련 메서드로는 sleep(), join(), interrupt(), yield(), stop(), suspend(), resume()이 있는데, 이 중 stop(), suspend(), resume()은 스레드를 교착상태(dead-lock)로 만들기 쉽기 때문에 deprecated 되어 사용하지 않는다. Multithreading 프로세스에서 여러 스레드가 같은 프로세스 내의 자원을 공유하며 생기는 문제점을 방지하기 위해 한 스레드가 진행 중인 작업을 다른 스레드가 간섭하지 못하게 막고, 이를 스레드의 동기화(synchronization)라 한다. 하지만 두 개 이상의 스레드가 동시에 같은 데이터에 접근하고 데이터를 변경하면 원하는 결과를 얻지 못하는 경우가 발..
2023.05.14 -
배열의 출력 - Arrays.toString() 변수의 타입 중 기본형 8개는 실제 값을 저장하고, 참조형은 메모리 주소를 저장한다. 배열은 객체이며, 따라서 배열을 대입한 변수에는 메모리 주소가 저장된다. int[] arr = {1, 2, 3, 4, 5}; System.out.print(arr); // 배열의 요소가 아닌 주소값이 출력됨 이처럼 배열의 변수를 print() 메서드로 출력하면 배열의 요소가 아닌 주소값이 나온다. (예외적으로 char 타입은 요소가 출력됨) 배열의 요소를 콘솔에서 확인하려면 다음과 같은 방법을 사용한다. import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr..
[Java] 배열의 출력, 비교, 복사와 정렬배열의 출력 - Arrays.toString() 변수의 타입 중 기본형 8개는 실제 값을 저장하고, 참조형은 메모리 주소를 저장한다. 배열은 객체이며, 따라서 배열을 대입한 변수에는 메모리 주소가 저장된다. int[] arr = {1, 2, 3, 4, 5}; System.out.print(arr); // 배열의 요소가 아닌 주소값이 출력됨 이처럼 배열의 변수를 print() 메서드로 출력하면 배열의 요소가 아닌 주소값이 나온다. (예외적으로 char 타입은 요소가 출력됨) 배열의 요소를 콘솔에서 확인하려면 다음과 같은 방법을 사용한다. import java.util.Arrays; public class Test { public static void main(String[] args) { int[] arr..
2023.04.24 -
Javascript 디지털 시계 구현하기 Javascript만 활용하여 시간 : 분 : 초 로 출력되는 디지털 시계를 구현해보았다. 사용되는 함수로는 날짜와 요일, 시간을 알려주는 객체 Date()와 시간, 분, 초 값을 리턴하는 함수 getHours(), getMinutes(), getSeconds(), 그리고 SetInterval()이 있다. new Date() 생성시 다음과 같이 출력된다. Mon Apr 17 2023 14:35:56 GMT+0900 (한국 표준시) SetInterval()은 SetInterval(function, milliseconds)로 사용할 수 있는데, 괄호 없이 함수명을 적고, 밀리세컨 단위의 초를 쓰면 된다. (1 sec = 1000 millisec) n밀리초 단위로 fu..
디지털시계 구현하기Javascript 디지털 시계 구현하기 Javascript만 활용하여 시간 : 분 : 초 로 출력되는 디지털 시계를 구현해보았다. 사용되는 함수로는 날짜와 요일, 시간을 알려주는 객체 Date()와 시간, 분, 초 값을 리턴하는 함수 getHours(), getMinutes(), getSeconds(), 그리고 SetInterval()이 있다. new Date() 생성시 다음과 같이 출력된다. Mon Apr 17 2023 14:35:56 GMT+0900 (한국 표준시) SetInterval()은 SetInterval(function, milliseconds)로 사용할 수 있는데, 괄호 없이 함수명을 적고, 밀리세컨 단위의 초를 쓰면 된다. (1 sec = 1000 millisec) n밀리초 단위로 fu..
2023.04.17 -
개요 자바에서 `==`(등가비교 연산자)와 `equals()`는 두 객체의 값이 같은지 비교할 때 사용하며 비교 결과를 boolean 타입으로 반환한다. 둘은 비슷해 보이지만 반대의 결과가 나오기도 하기 때문에 어떤 차이가 있는지 알아보고자 한다. 등가비교 연산자 `==` 두 피연산자의 값이 같은지를 비교하는 연산자로, 모든 자료형(기본형과 참조형)에 사용 가능하다. 기본형의 경우 변수에 저장되어 있는 값이 같은지 알 수 있고, 참조형의 경우 객체의 주소값이 같은지를 알 수 있다. 다시 말해 `==` 연산자는 비교 대상의 주소값을 비교한다. int val1 = 3; int val2 = 3; int val3 = 5; String str1 = "hello"; String str2 = new String("h..
Java에서 객체 값 비교하기: == vs equals()개요 자바에서 `==`(등가비교 연산자)와 `equals()`는 두 객체의 값이 같은지 비교할 때 사용하며 비교 결과를 boolean 타입으로 반환한다. 둘은 비슷해 보이지만 반대의 결과가 나오기도 하기 때문에 어떤 차이가 있는지 알아보고자 한다. 등가비교 연산자 `==` 두 피연산자의 값이 같은지를 비교하는 연산자로, 모든 자료형(기본형과 참조형)에 사용 가능하다. 기본형의 경우 변수에 저장되어 있는 값이 같은지 알 수 있고, 참조형의 경우 객체의 주소값이 같은지를 알 수 있다. 다시 말해 `==` 연산자는 비교 대상의 주소값을 비교한다. int val1 = 3; int val2 = 3; int val3 = 5; String str1 = "hello"; String str2 = new String("h..
2023.04.15 -
break문 switch문을 작성할 때 사용하며 break를 만나면 전체 switch문을 탈출함 자신이 포함된 가장 가까운 하나의 반복문을 벗어남 중첩 반복문에서 하나 이상의 반복문을 벗어나려면, 반복문에 이름을 붙이고 break문에 이름을 지정하여 반복문을 탈출할 수 있음 주로 if문과 함께 사용되어 특정 조건을 만족할 때 반복문을 벗어나게 함 continue문 반복문 내에서만 사용 가능 반복이 진행되는 도중 continue를 만나면 이후 코드는 실행되지 않고 다음 반복으로 넘어감 중첩 반복문에서 하나 이상의 반복문을 건너뛰려면, 반복문에 이름을 붙이고 continue문에 이름을 지정하여 반복을 건너뛸 수 있음 전체 반복 중 특정 조건을 만족하는 경우를 제외하고자 할 때 유용 Loop1 : for (i..
[Java] break, continue, return의 특징과 차이break문 switch문을 작성할 때 사용하며 break를 만나면 전체 switch문을 탈출함 자신이 포함된 가장 가까운 하나의 반복문을 벗어남 중첩 반복문에서 하나 이상의 반복문을 벗어나려면, 반복문에 이름을 붙이고 break문에 이름을 지정하여 반복문을 탈출할 수 있음 주로 if문과 함께 사용되어 특정 조건을 만족할 때 반복문을 벗어나게 함 continue문 반복문 내에서만 사용 가능 반복이 진행되는 도중 continue를 만나면 이후 코드는 실행되지 않고 다음 반복으로 넘어감 중첩 반복문에서 하나 이상의 반복문을 건너뛰려면, 반복문에 이름을 붙이고 continue문에 이름을 지정하여 반복을 건너뛸 수 있음 전체 반복 중 특정 조건을 만족하는 경우를 제외하고자 할 때 유용 Loop1 : for (i..
2023.04.15