본문 바로가기
반응형

🖥Web/🔥Java10

[Java] 간단한 파일 쓰기, 읽기 (File, FileOutputStream, FileInputStream, BufferedReader, InputStreamReader) package com.example.test; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStreamReader; public class FileInputOutputTest { public static void main(String[] args) throws IOException { File f = new File("./src/com/example/test/new_file.txt"); FileOutputStream fos = new FileOutputStr.. 2022. 10. 30.
[Java] 간단한 채팅 소켓통신 (Thread, Runnable, BufferedReader, BufferedWriter, InputStreamReader, OutputStreamWriter, Socket, ServerSocket) 간단한 채팅 소켓통신 chattingclient project chattingserver project 워크스페이스 하나에 두개의 프로젝트 또는 두 개의 워크스페이스에 각 한개씩의 프로젝트를 생성 chattingclient project ChattingClient.java package chattingclient; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.Socket; import java.util.Scanner; class Receiv.. 2022. 10. 23.
[Java] 스페이스맨 게임, 주의! 코드 엉망 개발자가 되기 위해서 학원을 다니던 중에 4개월쯤 되었을때 시간이 남아서 개인프로젝트로 뭘 해볼까 하다가 만들었던 게임입니다. 아무것도 모르던 때라 코드가 엉망이긴 하지만 버리기엔.. 그때 열심히 늦게까지 남아서 했던 추억이 너무 아까워서 블로그에 남겨놓습니다 컨트롤 스무스하지않고 뻑뻑합니다. 그래도 나름 만들면서 열정이 더욱 폭팔했던 추억의 첫 게임 앱입니다! javax swing을 사용하였습니다! 실행시 볼 수 있는 이미지 https://github.com/jhleelego/space_man.git GitHub - jhleelego/space_man: Space Man Application Space Man Application. Contribute to jhleelego/space_man devel.. 2021. 11. 21.
[Java] java Enum 적용하기, java Enum 왜 써야할까? Enum의 기본적인 장점들 문자 열과 비교해 IDE의 적극적인 지원을 받을 수 있습니다. 자동완성, 오타검증, 텍스트 리팩토링 등등 허용 가능한 값들을 제한 할 수 있습니다. 리펙토링 시 변경 범위가 최소화 됩니다. 내용의 추가가 필요하더라도, Enum 코드 외에 수정할 필요가 없습니다. Enum을 사용하는 이유는 지저분한 코드들을 모두 지우고(예를들면 if(any || any || ... ) 등등의 긴 문장) 한 곳에서(Enum) 모든 정리를 끝내고 값을 내주는것, 확실하게 명시된것만 사용할 수 있도록 하는것이 유용한것같습니다. 값이 변하는것들을 사용 할 용도는 절대 아닌것으로 보이고 setter는 사용하지않고 getter만 사용하는것이 바람직해보입니다. Enum을 사용해보도록 하겠습니다. 생성시에는 .. 2021. 1. 15.
[Java] String, StringBuilder, StringBuffer의 차이 String, StringBuffer, StringBuilder.. 모두 문자열을 저장하고, 관리하는 클래스입니다. 굳이 여러가지를 만들어놓은 이유는 무엇일까요. 1) String 먼저 String과 다른 클래스(StringBuffer, StringBuilder)의 차이점은 두 문자열 클래스의 아주 기본적인 차이는 String은 immutable(불변), StringBuffer는 mutable(변함)에 있습니다. String은 문자열을 대표하는 것으로 문자열을 조작하는 경우 유용하게 사용할 수 있습니다. 문자열, 숫자, char 등은 concat할때는 StringBuffer, StringBuilder를 사용할 수 있습니다. 단, 복잡한 경우 의미가 있고, 단순한 경우에는 굳이 StringBuffer, S.. 2020. 6. 5.
[JAVA] 추상클래스와 인터페이스의 차이 추상클래스 인터페이스 생성자 O X 일반메소드 O X 추상메소드 O O 클래스는 크게 일반 클래스와 추상 클래스로 나뉘는데 추상 클래스는 클래스 내 '추상 메소드' 가 하나 이상 포함되거나 abstract로 정의된 경우를 말합니다. 반면 인터페이스는 모든 메소드가 추상 메소드인 경우입니다. (자바 8에서는 default 키워드를 이용해서 일반 메소드의 구현도 가능합니다.) 두 개념의 차이는 너무 명확합니다. 일단 생김새도 다르고, 사용하는 방법도 다릅니다. 그렇지만 하는일은 비슷합니다. 추상클래스와 인터페이스는 상속받는 클래스 혹은 구현하는 인터페이스 안에 있는 추상 메소드를 구현하도록 강제한다. 이 '하는 일' 을 한번 생각해보면 결국 추상메소드를 구현하는 거네요? 그렇다면 추상 클래스 하나만 존재하되.. 2020. 5. 25.
[JAVA] URL 코드보기 package book.chap15; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; public class ViewURL { public ViewURL() {} public ViewURL(String strURL) { URL myURL = null; URLConnection urlCon = null; InputStream is = null; BufferedReader br = null; String data = null; String headerType = null; try { myURL = n.. 2020. 3. 18.
[JAVA] 스레드 기본상식, 데몬스레드 package book.chap15; /* 상황에 따라 분리된 스레드로 백그라운드 작업을 해야하는 경우가 있다. JVM안에 가비지 컬렉션과 같은 작업이 대표적이다. 이런 백그라운드 작업이 일반 스레드로 설정되어 있다면 전원이 종료되거나 사용자가 강제종료 하지 않는 한 애플리케이션은 영원히 정지 하지 않을 것이다. */ public class DaemonThreadTest { public static void main(String[] args) { Thread th = new Thread() { public void run() { try { while (true) { Thread.sleep(5000);//milisecond 5초 정지 System.out.println("INNER Thread종료"); } .. 2020. 3. 18.
[JAVA]StreamReader , BufferedReader package book.chap15; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Random; import javax.swing.JFrame; import javax.swing.JOptionPane; public class RandomGame extends JFrame{ public static void main(String[] args) { RandomGame rg = new RandomGame(); Random r = new Random(); int dap = r.nextInt(10); String user = "-1"; JOptionPane.showMessageDialog(rg, "0부터 9주에서.. 2020. 3. 18.
[JAVA] 접근제어자 public > protected > default > private public = 공공의, 다른 패키지, 같은 패키지 모두 사용 가능함. protected = 다른 패키지인데 접근 불가함. 하지만 상속하는경우 또는 임포트하는 경우 둘다 사용이 가능하다. default = 다른 패키지인데 상속이여도 접근 불가함. private = 같은 패키지인데 상속이여도 사용 불가함. 어떤 변수가 private으로 접근제어자가 설정되어있는경우 직접 접근은 불가하나 메소드를 사용하여 접근은 가능하다.(메소드가 private로 되어있으면 이또한 접근 불가하다.) 1번 package hiding; public class Student{ int studentID; private String studentName; int g.. 2020. 2. 10.
반응형