JAVA (39) 썸네일형 리스트형 [Java] 자바 마우스 매크로 프로그램 (Swing, Robot) 개요친구의 요청으로 마우스 매크로 프로그램 제작 시작2024-10-21 제작 시작회사 점심 먹고 남는 자투리 시간 활용요청사항총 두 좌표지점을 클릭할 예정한 지점당 클릭 횟수, 횟수 간의 시간 간격 요청다른 좌표로 이동시 딜레이 시간 요청프로그램 설명 Java17Java SwingJava RobotJava ThreadJava ExecutorService (백그라운드 스레드 풀)Java volatile 타입소스코드https://github.com/zxcvcx123/JavaMacro GitHub - zxcvcx123/JavaMacro: 친구 요청으로 인해 만든 자바 매크로친구 요청으로 인해 만든 자바 매크로. Contribute to zxcvcx123/JavaMacro development by creati.. Java serialization 사용 이유 프로젝트를 확인하다보면 DTO, VO, Domain 객체에 이게 왜 사용되는지에 대해 궁금해서 직접 공부한 내용을 기재하려고 한다. 객체에 아래와 같은 형태로 되어 있는 모습을 많이 볼 수 있다.public class User { private static final long serialVersionUID = 1L; 필드...}또는public class User implements Serializable {}serialization 정의 직렬화(Serialization): 객체를 바이트 스트림으로 변환해 파일 또는 네트워크로 전송할 수 있게 합니다.역직렬화(Deserialization): 바이트 스트림을 원래의 객체로 복원합니다.직렬화 하는 이유1) 객체의 영속성(Persistence).. 자바 property명 주의 사항!(dto, domain, entity) 문제 JAVA Beans Property명 생성할 때 lombok을 사용중이라면 cName 처럼 소문자 뒤에 대문자가 바로 오는경우 lombok이 Getter, Setter 만들어 줄 때 getCNAME, setCNAME 이런식으로 전부 대문자로 인식해 property명이 생성된다. 그래서 가급적이면 소문자 뒤에 바로 대문자가 오는 property명 만드는것을 안하는게 좋다 (알고 있으면 노상관) 예시) @Data public class MyDto34 { private Integer id; // cName이렇게 소문자 뒤에 바로 대문자가 올경우 // Getter가 getCNAME 이런식으로 생성이 된다. // 왜냐면 롬복이 변환 할때 맨 앞글자는 대문자로 변환 // 근데 그 다음 글자도 대문자인 경우 모.. File 파일 관련된 메소드들 // File String path = "C:\\Users\\jungmo\\eclipse-workspace\\javastudy20230828\\src\\ch18IO\\lecture\\C28file.java"; File file = new File(path); // 크기 // file.length() System.out.println(file.length()); // 있는지? // file.exists() System.out.println(file.exists()); // 경로 // getPath() System.out.println(file.getPath()); // 마지막 수정일시 // lastModified() System.out.println(file.lastModified().. Stream 스트림 Stream 스트림 // 기본타입 stream : IntStream, LongStream, DoubleStream // 참조타입 stream : Stream List list = List.of("java", "spring", "css", "react"); // stream 알기 전 반복문 for(String item : list){ System.out.println(item); } // stream 사용 Stream stream = list.stream(); // 메소드 // 중간연산 : intermediate operation, 중간에 여러번 // 최종연산 : terminal operation, 마지막에 한번 // 특징 // 최종연산 후 stream 재사용 불가 stream.count(); stream.. Stack 스택(LIFO) / Queue 큐(FIFO) Stack 스택(LIFO) - 후입선출 (나중에 들어간게 먼저 나온다) // stack (LIFO: Last In First Out) // 주요 메소드 // push : 마지막에 아이템 추가 // pop : 마지막 아이템 꺼내기 // peek : 마지막 아이템 보기 // 인스턴스 생성 Stack stack = new Stack(); stack.push(9); stack.push(8); stack.push(3); // 크기 System.out.println(stack.size()); // 3 // stack.pop(); System.out.println("pop: " + stack.pop()); // 마지막에 push된 3 // pop 해서 2개 System.out.println(stack.size());.. 제네릭스 <> (Generic) 제네릭스 (Generic) public class C02generic { public static void main(String[] args) { //이렇게 인스턴스 생성할때 타입을 결정할 수 있음 //타입은 참조 타입만 가능 MyClass02 o1 = new MyClass02(); MyClass02 o2 = new MyClass02(); //이렇게 뒤에는 생략 가능 MyClass02 o3 = new MyClass02(); //기본타입은 안됨 MyClass02 o4 = new MyClass02(); } } //generic type // 아직 어떤 타입으로 받을지 결정을 못했을 때 로 우선 둔다. //는 타입 파라미터 (TypeParameter) 라고 한다. // 타입파라미터 작성 규칙 // 대문자 한글.. 람다식 (lambda expression) 추상 메소드가 하나인 인터페이스의 익명 클래스 객체를 만들 때 사용가능 public class C01lambda { public static void main(String[] args) { //람다식 MyInterface01 o1 = (x, y) -> { System.out.println(x + y + "람다"); }; //익명 클래스 MyInterface01 o2 = new MyInterface01() { @Override public void method1(int x, int y) { System.out.println(x + y); } }; } } //lambda expression(람다식) //추상 메소드가 하나인 인터페이스의 익명 클래스 객체를 만들 때 사용가능 //추상 메소드가 하나인 인터페이스.. 이전 1 2 3 4 5 다음