자바
-
[JAVA] 생성자자바 2024. 8. 14. 10:08
대부분 객체 지향 언어에서는 객체를 생성하자마자 즉시 필요한 기능을 좀 더 편리하게 수행할 수 있도록 생성자 기능을 제공한다. 생성자를 사용하면 객체를 생성하는 시점에 필요한 기능을 수행할 수 있다. 생성자의 장점1) 중복 호출 제거2) 필수값 입력 보장 package construct;public class MemberInit { String name; int age; int grade;}package construct;public class MethodInitMain1 { public static void main(String[] args) { MemberInit member1 = new MemberInit(); member1.name ..
-
[JAVA] 예외처리자바 2023. 5. 7. 14:07
java에서 예외는 크게 error, runtimeException, OtherException 1) error : 메모리부족(OutOfMemoryError), 스택오버플로우(StackOverFlowError)처럼 JVM이나 하드웨어 등 시스템의 문제로 발생하는 것을 의미한다. 즉, 개발자가 처리할 수 있는 영역이 아니기 때문에 error 발생하면 프로그램을 종료시키는 것이 보통이다. error excpetion : 개발자가 프로그램을 처리할 수 있는지에 대한 여부 exception 이런 예외 처리 동작은 호출 스택을 통해 수행된다. 기본적으로 메서드를 호출하면 메서드들은 호출 스택에 쌓이게 된다. 따라서 마지막 호출한 메서드부터 역순으로 올라가면서 예외 처리를 구현한 메서드를 찾아가는 것이다. >> t..
-
[JAVA] path 클래스자바 2023. 5. 6. 14:03
String text = new String(Files.readAllBytes(Paths.get("파일경로"))); - java.nio.file.files > files 클래스 1) static 메서드로 구성되어 있음 2) path 객체를 이용해 파일 시스템 작업 수행 > Files 클래스에는 너무 많은 static 메서드가 있고 사용법도 복잡한 편. import 하는 순간 모든 static 메서드가 다 메모리에 올라오기 때문에 간단한 파일 시스템 작업은 java.io.file 클래스 사용 권장 - files.readAllBytes : 파일의 경로를 가져와 파일에서 읽은 바이트를 포함하는 바이트 어레이 반환 - paths.get > IO는 파일의 속성 정보를 읽기 위해 File 클래스 제공, NIO는 좀..
-
[JAVA] 파일 읽고쓰기, BufferedWriter 파라미터로 넘기기자바 2023. 4. 29. 11:36
main에서 BufferedWriter를 열고 닫기 전 메서드에서 파일 내용을 가져다 쓴다면 제대로 저장이 될까? public static void main(String[] args) throws IOException { Scanner sc = new Scanner(System.in); Calendar calendar = Calendar.getInstance(); SimpleDateFormat formatter = new SimpleDateFormat("yyMMdd(HH-mm-ss)"); String newFileName = formatter.format(calendar.getTime()).toString(); File file = new File("C:\\resultTxt\\"+newFileName+"..
-
[JAVA] try-catch-finally 구문자바 2023. 4. 28. 11:17
try-catch문 - 예외처리를 위한 구문 try { // 에러가 발생할 수 있는 코드 // 강제 에러 출력 throw new Exception(); } catch (Exception e) { // 에러 발생시 수행 e.printStackTrace(); throw e; } finally { //무조건 수행 } - try : 예외를 감지하는 곳, catch : 예외를 처리하는 - try에서 예외가 발생하지 않으면 catch 부분 코드는 실행되지 않는다 - try-catch 구문을 자주 사용하는데 항상 finally 부분이 헷갈린다 - finally는 중간에 에러가 발생해도 무조건 수행 - finally 의 필요성은? 보통은 자원이나 DB 커넥션을 한 경우 close와 같은 정리 코드를 넣는데 사용된다 W..
-
[JAVA] Static 키워드자바 2023. 4. 27. 11:03
코드를 짜면서 static이라는 키워드에 대해 생각을 하지 않았다 면접 준비할 때 static이 뭔지에 대해서 암기만 했을 뿐... 이번에 왜 메서드와 클래스에 static을 넣었냐는 질문을 받으니 그냥...이라는 말 밖에 할 수 없었다 정리해 보니 지금은 작은 프로그램이라 상관이 없지만, 큰 프로그램을 다룰 때는 반드시 고려해야 하는 것이구나 느꼈다 static 키워드 (static : 정적, 고정된) static 변수, static 메서드 > 정적필드와 정적메서드 > 정적멤버 > 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버 > 공용으로 사용하느냐 아니냐에 따라 static 키워드 사용할지말지 > main 메서드보다 먼저 실행 1. 메모리에 고정적으로 할당된다. - static이 붙지 ..
-
[JAVA] openAI API 이용한 chatGPT, 자바로 채팅 기능 구현하기 - V2자바 2023. 4. 24. 18:18
이번에는 누가 구현해 놓은 라이브러리를 사용했다 https://github.com/TheoKanning/openai-java public class testAPI { public static void main(String[] args) throws Exception { String input = "Y"; while (!input.equals("N")) { Scanner sc = new Scanner(System.in); input = sc.nextLine(); chatGPTV5(input); } chatGPTV4(); } public static String chatGPTV4() throws Exception { String token = "인증키"; OpenAiService service = new O..
-
[JAVA] stream자바 2023. 4. 23. 17:44
1) inputstream / outputstream - stream : 파일을 읽거나 쓸 때 네트워크 소켓을 거쳐 통신할 때 쓰이는 추상적인 개념 - byte : 데이터는 0이나 1로 귀결되고 0이나 1이 8개 모이면 byte - inputStream / outputStream : 단일 방향, 연속적으로 흘러간다. 추상 클래스이며 추상 메서드를 오버라이딩해서 다양한 역할을 수행할 수 있다. (파일/네트워크/메모리 입출력) - 프로그램이 네트워크 상 다른 프로그램과 데이터를 교환하기 위해서는 양쪽 모두 입력 스트림과 출력 스트림이 필요 - 프로그램이 출발지/도착지인지에 따라 스트림의 종류가 결정 1-1) inputstream : byte 기반 입력 스트림의 최상위 추상클래스, 파일 데이터를 읽거나 네트워..