일상을 바쁘게 살면서 여유가 없던 시점 코로나가 조금 잠잠해진 틈을 타 다녀온 인천여행! 본래 1박 2일로 계획되어 있었던 여행이지만 피치 못할 사정으로 당일치기 여행이 되어버린 아쉬운 여행... 구글 맵 타임라인으로 본 인천 여행 뚜벅이인 나로서는 최선의 여행지였다. 총 지하철은 1시간 50분, 도보로는 1시간 22분을 걸었다고 기록이 나온다. 더 많이 걸었던 것 같은데 나의 착각이었나? 인천역에서 내리면 차이나타운까지 바로갈수도 있겠지만. 서울에서 인천으로 가는 급행열차가 동인천역까지만 간다고 하여 지하철을 갈아타기보다는 날씨도 좋은데 한번 걸어서 가보기로 했다. 가는 길에 겸사겸사 자유공원도 보고 그게 더 기억에 남을 것 같았다. 하늘색 라인선이 오늘 내가 걸었던 코스이다. 걸어가는 길이 예상과는 ..
평생을 금정구 특히 남산동의 한 주택에서 20여년을 살아오다 얼마 전 양산 덕계동에 있는 신축 아파트로 이사를 했다. 나는 이제 서울에서 살기는 하지만 가끔씩 부산에 내려왔을 때 깔끔한 건물에서 지낼 수 있다는 것은 매우 기분 좋은 일이다. 가족들이 이사한 아파트는 양산 덕계동 두산위브라는곳이다. 양산 덕계동은 부산과 울산이라는 두개의 대도시 사이에 있고 아파트 바로 옆에 부산과 울산을 가로지르는 7번 국도가 있어 차를 가지고 있다면 부산과 울산으로 15분 남짓한 시간으로 갈 수 있다. 부산과 울산과의 접근성이 좋다는 것이 가장 마음에 든다. 아직 발전할게 많아 보이는 양산 덕계동이다. 옆동네 정관신도시는 이제 발전할 만큼 다 발전해서 밤중에 지나가다 보면 불빛으로 휘황찬란하던데 조만간 덕계도 그렇게 되..
Java에서 int와 boolean과 같은 일반적인 데이터 타입의 비교는 ==이라는 연산자를 사용하여 비교합니다. 하지만 String처럼 Class의 값을 비교할때는 ==이 아닌 equals()라는 메소드를 사용하여 비교를 합니다. equals와 == 은 어떤 차이점이 있을까요. String 변수 생성시 주소할당 String변수를 생성할때는 두가지 방법이 있습니다. 1. 리터럴을 이용한 방식 2. new 연산자를 이용한 방식 위의 두 가지 방식에는 큰 차이점이 있습니다. 리터럴을 사용하게 되면 string constant pool이라는 영역에 존재하게 되고 new를 통해 String을 생성하면 Heap 영역에 존재하게 됩니다. String을 리터럴로 선언할 경우 내부적으로 String의 intern() ..
자바에서 배열의 길이를 구하고 싶을떄는 length()이라는 메소드를 사용합니다. length() 메소드는 Static으로 이루어져 있어 Import나 클래스 선언 없이 바로 사용이 가능합니다. 문자열 길이 구하기 public class len { public static void main(String[] args) { String s = "abcdefg"; int s_len = s.length();//길이 구하기 System.out.println("문자열길이 : " + s_len); } } length() 메소드는 문자열의 길이를 리턴해줍니다. 문자열 길이 제한하기 import javax.swing.JOptionPane; public class len { public static void main(St..
프로그래밍을 하다보면 특정 문자열에서 원하는 문자가 포함되어 있는지 확인해야하는 소스를 넣을때가 종종 있습니다. 문자열을 찾는 방법은 String클래스의 indexOf(), contains(), matches()메소드를 활용하여 찾을 수 있습니다. 다만 그 용도에 따라서 3가지의 메소드가 조금 다릅니다. indexOf( ) ,contains( ),matches( )의 메소드의 사용용도 메소드 사용처 indexOf() 대상 문자열에서 찾고자 하는 문자의 index값을 찾고싶을때 contains() 대상 문자열에서 찾고자 하는 문자열이 포함되어있는지 여부를 알고 싶을때 matches() 대상 문자열에서 정규표현식(숫자, 영문자, 한글)등이 포함되어있는지 여부를 알고 싶을때 indexOf( )을 활용하여 문자..
자바에서 String타입 알파벳의 대문자 혹은 소문자로 통일하고 싶다면 String클래스의 toUpperCase와 toLowerCase를 사용하면됩니다. toUpperCase()와 toLowerCase() 메소드는 모두 정적이므로 Import나 클래스 선언 없이 바로 사용이 가능합니다. 대문자로 변경(toUpperCase) public class toUpperCase { public static void main(String[] args) { String target = "abcdefg"; //대상 문자열 target = target.toUpperCase(); //대문자로 치환 System.out.println(target); //출력 } } toUpperCase()메소드는 문자열을 모두 대문자로 바꾼 ..
자바에서 특정값의 제곱근(루트)을 구하려면 java.lang.Math 클래스의 sqrt()메소드를 사용하면 됩니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있습니다. Math 클래스가 제공하는 메소드는 모두 정적이므로 Import나 Math클래스 선언 없이 바로 사용이 가능합니다. 제곱근(루트) 구하기 public class Sqrt { public static void main(String[] args) { double result = Math.sqrt(25); //25의 제곱근 System.out.println("25의 제곱근 : "+ result); } } Math.sqrt() 메소드는 입력값과 출력값은 모두 double형이며 Math.sqrt(대상숫자)를..
자바에서 특정값의 제곱을 구하려면 java.lang.Math 클래스의 pow()메소드를 사용하면 됩니다. java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있습니다. Math 클래스가 제공하는 메소드는 모두 정적이므로 Import나 Math클래스 선언 없이 바로 사용이 가능합니다. 거듭 제곱 구하기 Math.pow() public class Pow { public static void main(String[] args) { double result = Math.pow(5, 2); //5의제곱 System.out.println("5의 제곱은 : "+result); } } >Math.pow() 메소드는 입력값과 출력값은 모두 double형이며 Math.pow(대상숫자,지수)를..
자바에서 난수를 얻어내는 방법은 Random클래스를 활용하는 방법과 Math클래스를 활용하는 방법 2가지가 있습니다. 두 방법의 차이점은 Math.random() 메소드는 0.0에서 1사이의 double 난수를 얻는데만 사용한다면, Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있습니다. 또 Math.random()은 종자값(seed)가 현재시간으로 고정인 반면 Random클래스는 종자값(seed)을 설정 할 수 있습니다. 종자값은 난수를 만드는 알고리즘에 사용되는 값으로 종자값이 같으면 같은 난수를 얻습니다. Math.random() public class RandomExample { public static void main(String[] args..
정규표현식(Regular Expression)이란 컴퓨터 과학의 정규언어로부터 유래한 것으로 특정한 규칙을 가진 문자열의 집합을 표현하기 위해 쓰이는 형식언어 입니다. 개발을 하다보면 전화번호, 주민등록번호, 이메일등과 같이 정해져있는 형식이 있고 사용자가 그 형식대로 제대로 입력했는지 검증을 해야하는 경우가 종종 있습니다. 이런 입력값을 정해진 형식에 맞는지 검증해야 할 때에는 정규표현식을 사용하면 쉽게 구현할 수 있습니다. 자주 사용하는 정규 표현식 정규 표현식 설명 ^[0-9]*$ 숫자 ^[a-zA-Z]*$ 영문자 ^[가-힣]*$ 한글 \\w+@\\w+\\.\\w+(\\.\\w+)? E-Mail ^\d{2,3}-\d{3,4}-\d{4}$ 전화번호 ^01(?:0|1|[6-9])-(?:\d{3}|\d{..
대부분의 운영체제는 실행되는 프로그램들에게 유용한 정보를 제공할 목적으로 환경변수를 제공합니다. 환경 변수는 운영체제에서 이름(Name)과 값(value)로 관리되는 문자열 정보이며 운영체제가 설치될 때 기본적인 내용이 설정되지만, 사용자가 직접 설정하거나 응용프로그램이 설치될 때 자동적으로 변경되기도 합니다. 자바에서는 OS의 환경변수의 값을 System.getenv( ) 라는 메서드를 통해서 불러올 수 있습니다. 환경 변수 읽기 System.getenv( ) //String value = Sytstem.getenv(String name); //사용법 System.out.println("전체 OS 환경변수 값 : " + System.getenv()); System.out.println("OS 환경변수 ..
시스템 프로퍼티는 JVM이 시작할 때 자동으로 설정되는 시스템 속성값입니다. 시스템 프로퍼티는 키(key)와 값(value)로 구성되어 있으며 운영체제에서 사용되는 파일 경로, 구분자, 운영체제의 종류 및 자바 프로그램을 실행시킨 사용자 아이디 JVM의 버전등이 여기에 속합니다. 시스템 프로퍼티 읽기(getProperty()) 키 설명 키(Key) 값 설명(Value) java.version Java 버전 java.vendor Java 공급자 java.vendor.url Java 공급자 주소 java.home Java가 위치한 디렉토리 java.class.version Java 클래스 버전 java.class.path Java 클래스의 경로 java.ext.dir Ext ClassLoader에 로드할 클..
System 클래스를 이용하면 운영체제의 프로그램 종료, 키보드로부터 입력, 모니터로 출력, 메모리 정리, 현재 시간 읽기, 시스템 프로피티 읽기, 환경 변수 읽기등의 일부 기능을 사용할 수 있습니다. 프로그램 종료(System.exit( )) 강제적으로 JVM을 종료시키고 싶을 때는 System 클래스의 exit() 메소드를 호출하면 됩니다. exit() 메소드는 현재 실행하고 있는 프로세스를 강제 종료시키는 역할을 합니다. exit() 메소드는 int 매개값을 지정하도록 되어 있습니다. 이 값을 종료 상태값이라고 합니다. 일반적으로 정상 종료일 경우 0으로 지정하고 비정상 종료일 경우 0이외의 다른값을 줍니다. System.exit(0); //정상종료 System.exit(1); //비정상종료 Sys..