반응형

CS 및 기반지식/★JAVA 33

[Java] 자바로 메모장 실행하기 with ProcessBuilder

크론탭으로 쉘스크립트를 실행해서 만들어진 log파일을 읽는 방법을 생각하다가 일정 주기마다 생성하는 방법의 단점을 알게 되어서 API를 통해 운영체제에 트리거를 줄 수 있는 방법이 있는지 찾아보았다. java.lang.ProcessBuilder 클래스가 그런 기능을 제공하고 있다. 자바는 참 대단한 것 같다. public class Main { public static void main(String[] args){ String command = "notepad"; ProcessBuilder process = new ProcessBuilder(command); try { process.start(); } catch (IOException e) { e.printStackTrace(); } } } 어떤 식으로..

[Java] 시간과 관련된 자바 클래스

Java8 이전--------------- ▶Date 클래스 -현시점 운영체제의 시간(로컬)을 밀리세컨드 단위로 얻을 때 사용한다. -객체 간 날짜 정보를 주고받을 때 주로 사용한다. -toString()을 이용하면 영문으로 된 날짜 정보 문자열을 리턴 받을 수 있다. -특정 포맷으로 날짜 정보를 얻고 싶을 때 SimpleDateFormat 클래스를 이용한다. -많은 생성자와 메소드들이 Deprecated 되었다. 단순 특정 시점의 시간을 저장하는 용도로만 사용하게 되었다. -Format클래스의 공통적인 사용법 1) 생성자에 문자열 파라미터(원하는 포맷)로 제공하면서 포맷객체 생성 2) format()메소드로 포맷이 적용된 문자열을 반환받음 *MessageFormat은 "x는" + x + "입니다."; ..

[Java] 텍스트 파일 읽기, Reader, FileReader, File, BufferedReader

- 자바에서 파일 자체의 데이터를 읽고 쓰는 것 (파일 입출력)은 스트림을 이용하여야 한다. -java.io.File 클래스는 파일에 대한 정보, 파일 생성, 삭제, 디렉토리 생성 및 디렉토리 내부 리스트 등의 기능을 제공하며 파일 입출력 기능은 제공하지 않는다. -문자 기반 입력스트림인 Reader 의 구상 클래스 중 파일을 읽는데 사용하는 FileReader를 사용한다. FileReader 인스턴스생성 시 File객체를 매개변수로 넣어준다. 직접 파일 경로를 매개변수로 넣지 않는 이유는 FIle 존재 여부 등을 확인하여 조금 더 안전하게 사용하기 위해서이다. Reader 타입 객체는 성능향상을 위하여 BufferedReader 객체 생성 시 매개변수로 제공하고 실제로는 보조스트림인 BufferedRe..

[Java] int[] -> Integer[] -> ArrayList<Integer> -> int[]

▶int[]을 Integer[]로 변환하기 int[] arr = new int[5]; Integer[] integerArr = Arrays.stream(arr).boxed().toArray(Integer[]::new); ▶Integer[]을 ArrayList로 변환하기 ArrayList list = new ArrayList(Arrays.asList(integerArr)); ▶ArrayList 를 int[]로 변환하기 int[] arr2 = list.stream().mapToInt(Integer::valueOf).toArray(); ※람다식 (Lambda) 자바는 람다식을 이용하여 함수 스타일을 지원한다. 람다식은 함수적 인터페이스(Functional Interface)의 익명구현객체로 생성되어 작동한다...

[Java] 자바 상식2

이것이자바다2권 -실행중인 프로그램을 프로세스라고 한다. -멀티 태스킹에는 멀티 프로세스와 멀티 스레드가 있다. -멀티 스레드는 예외 시 프로세스 전체가 종료되므로 예외처리에 만전을 기해야한다. -작업스레드는 Thread 클래스로 직접 만들거나 Thread 클래스를 상속받아 만든다. -병렬성은 멀티코어, 동시성은 원코어 시분할 -스레드가 코어보다 많은 경우 동시성의 순서를 정하는 것이 스레드스케줄링이다. -스레드스케줄링에는 우선순위(Priority)와 순환할당(Round-Robin)이 있다. -우선순위는 개발자가 코드로 제어 가능하다 -순환할당은 JVM이 처리하여 개발자가 코드로 제어 불가하다. -멀티스레드에서 하나의 스레드만 작업할 수 있는 영역이 임계영역(Critical section)이다. -자바에..

[Java] 자바 상식

이것이 자바다 1권 자바 상식. -자바는 오크(Oak)라는 언어에서 시작되었다. -자바는 이식성이 높은 언어이다. -Write once, run anywhere -자바는 객체지향 언어이다. -자바는 GC가 메모리를 자동으로 관리한다. -자바는 멀티스레드 구현이 용이하다. -java는 byte나 short정수 연산 시 int형으로 변환하여 연산하고 int형으로 반환한다. -int형은 10진수,8진수,16진수로 대입할 수 있다. -자바는 모든 문자를 유니코드로 처리한다. -자바는 한 번의 컴파일로 기계어가 만들어지지는 않는다. -자바실행환경(JRE) 에 개발도구가 더해진 것이 자바개발키트(JDK)이다. -자바의주석은 //, /* */, /** */ 가 있다. -short 타입은 C언어와의 호환을 위해 주료 ..

[JAVA] 정규표현식(Regular Expression)

안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다. 자바 기본기를 탄탄히 다지기 위한 공부 목적 포스팅입니다. 이것이자바다, HeadFirstJava 등의 교재와 구글링을 토대로 본인의 이해를 위해 작성하였으며 계속해서 살을 붙여나갈 계획입니다. 틀린 부분이 있을 경우 댓글 남겨주시면 감사하겠습니다. --------------------------------------------------------------------------------------------------------- WHY -문자열이 정해져있는 형식으로 구성되어있는지 검증하기 위하여 사용 -이메일 입력, 비밀번호 입력, 전화번호 입력 등 Pattern (Java SE 18 & JDK 18) All Implemented Inter..

[JAVA] 싱글톤

안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다. 자바 기본기를 탄탄히 다지기 위한 공부 목적 포스팅입니다. 이것이자바다, HeadFirstJava 등의 교재와 구글링을 토대로 본인의 이해를 위해 작성하였으며 계속해서 살을 붙여나갈 계획입니다. 틀린 부분이 있을 경우 댓글 남겨주시면 감사하겠습니다. --------------------------------------------------------------------------------------------------------- WHY - 다른 클래스에서 이 클래스의 객체를 추가 생성하지 못하도록 하는 것 - 하나의 객체만 만들어야 하는 경우 클래스를 싱글톤으로 만드는 법 1. 해당 클래스 자기 자신의 객체를 static 필드로 만듦. pr..

[JAVA] 다형성

안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다. 자바 기본기를 탄탄히 다지기 위한 공부 목적 포스팅입니다. 이것이자바다, HeadFirstJava 등의 교재와 구글링을 토대로 본인의 이해를 위해 작성하였으며 계속해서 살을 붙여나갈 계획입니다. 틀린 부분이 있을 경우 댓글 남겨주시면 감사하겠습니다. --------------------------------------------------------------------------------------------------------- WHY - 악기 연주를 코딩으로 할 경우, '피아노'를 연주하다, '기타'를 연주하다, '바이올린'을 연주하다, '템버린'을 연주하다.........'부부젤라'를 연주하다......'오르간'을 연주하다. 하나하나 다..

[JAVA] 스트림과 병렬처리

안녕하세요. 삶의 질을 높이고자 노력하는 영차영차입니다. 자바 기본기를 탄탄히 다지기 위한 공부 목적 포스팅입니다. 이것이자바다, HeadFirstJava 등의 교재와 구글링을 토대로 본인의 이해를 위해 작성하였으며 계속해서 살을 붙여나갈 계획입니다. 틀린 부분이 있을 경우 댓글 남겨주시면 감사하겠습니다. --------------------------------------------------------------------------------------------------------- WHY -내부 반복자 스트림을 사용하면 개발자는 요소 처리에만 집중할 수 있다. -스트림을 사용하면 병렬처리가 쉽다. -프로그래머스를 스트림으로 멋있게 풀 수 있다. List의 메소드에는 iterator()와 str..

반응형