본문 바로가기

Java22

[Java] next() 와 nextLine()의 차이와 주의점 next() 와 nextLine()의 차이와 주의점 Scanner stdIn = new Scanner(System.in); stdIn.nextInt( ); Scanner(System.in) 을 이용하면, 키보드로 입력한 값을 얻어낼 수 있다. (*stdIn : Standard Input) 위와 같이 nextInt()를 사용할 수도 있고, 원하는 자료형에 따라 nextByte() 등도 물론 가능하다. 하지만 항상 헷갈리는 것은 next()와 nextLine()이다. 메서드 자료형 next() String (스페이스 or 줄 바꿈 문자로 구분) nextLine() String (문자열 1줄) 둘다 String이지만, nextLine은 띄어쓰기를 무시하고 한 줄을 입력받는다. EX01. next() 직후 ne.. 2021. 8. 23.
[Java] 웹 디자인 프로그램 Oven, adobe XD 웹 디자인 프로그램 홈페이지, 어플의 디자인만을 하고 싶을 때 활용할 수 있는 프로그램 1. Oven ▼링크 OvenApp.io Oven(오븐)은 HTML5 기반의 무료 웹/앱 프로토타이핑 툴입니다. (카카오 제공) ovenapp.io 2. adobe XD 홈페이지, 어플의 디자인을 하고 싶을 때 사용하는 웹 프로그램 https://www.adobe.com/kr/products/xd.html 2021. 8. 11.
[Java] JQuery 프로젝트에 연결하기 JQuery 프로젝트에 연결하기 jQuery CDN The integrity and crossorigin attributes are used for Subresource Integrity (SRI) checking. This allows browsers to ensure that resources hosted on third-party servers have not been tampered with. Use of SRI is recommended as a best-practice, whenever libr code.jquery.com 다운로드 하지 않고, 위 사이트에서 CDN(콘텐츠 전송 네트워크)으로 연결하여 사용할 것이다. ▲ 위 사이트를 들어가지 않고 코드만 복사하고 싶은 분들은 위 코드를 복사해주.. 2021. 8. 9.
[Java] 소켓 Socket 소켓 socket 소켓을 사용하는 통신을 말한다. 소켓이란, 프로세스간 통신에 사용되는 양 끝단 영역을 말한다. java.net 안에 소켓이 있다. tcp/udp를 사용하는 소켓프로그래밍이 대표 TCP와 UDP TCP : '전화' 데이터를 전송하기 전에 먼저 상대편과 연결한 후 데이터 전송 전송 여부를 확인한다. 그러므로 실패하면 재전송한다. UDP : '전보' 연결하지 않고 데이터를 전송 전송 여부를 확인하지 않는다. 그러므로 데이터를 순서대로 수신한다는 보장이 없다. EX) ZOOM 같은 프로그램은 중간에 끊기더라도 별 문제 없이 진행된다. 서버 클라이언트의 1:1통신 서버가 먼저 실행되어 클라이언트의 연결 요청을 기다린다. 하나의 포트에는 하나의 소켓이 연결된다.(프로토콜이 다르면 다른 포트로) 서.. 2021. 8. 3.
[Java] 간단하게 네트워크 사용해보기 (java.net) 서버와 클라이언트 서버 : 서비스를 제공하는 컴퓨터 클라이언트 : 서버가 제공한 서비스를 받는 컴퓨터 서버 모델과 P2P 모델 서버 모델 : 전용 서버를 두고 그 서버의 서비스를 받습니다. P2P 모델 : 클라이언트가 서버의 역할을 동시에 수행하는 것. 네트워크 두대 이상의 컴퓨터를 케이블로 연결하여 네트워크를 구성 IP : 네트워크 상에서 고유한 자신의 주소 공인 : 어디에서던지 접속할 수 있는 주소 내부 : 내부에서만 통용되는 주소. 192.168.0.10 포트 : ftp 21 web 80 mariadb 3306 mail 25 EX01. Net Stream 서버 프로그램 구현 네트워크를 타고 들어가서 네이버 서버의 메인 페이지를 긁어와 한 줄씩 출력하는 프로그램 package jul02; import.. 2021. 8. 3.
[Java] 내부 클래스 Inner Class 내부 클래스 Inner Class class A{ class B{ } } 위와 같이 클래스 내부에 또 다른 클래스가 존재할 수 있다. B는 A의 내부 클래스이고, A는 B의 외부 클래스이다. 내부 클래스 B는 외부 클래스인 A가 아닌 클래스에서 잘 사용되지 않아야 한다. 외부 클래스가 아닌 다른 클래스에서 내부 클래스에 접근해야 한다면 내부 클래스로 선언해서는 안 되는 클래스를 내부 클래스로 선언했다는 의미이기 때문이다. 보통 AWT, Swing 등의 GUI 이벤트 처리 외에는 잘 사용되지 않는다. 내부 클래스의 장점 내부 클래스에서 외부 클래스의 멤버들에게 쉽게 접근이 가능하다. 코드의 복잡성을 줄여준다. (캡슐화) - 외부에는 불필요한 클래스를 감출 수 있기 때문이다. 내부 클래스의 종류와 특징 cl.. 2021. 7. 22.
[Java] 스택(Stack), 큐(Queue) 스택 Stack 쌓아 올리는 것 자료를 정해진 방향으로만 쌓을 수 있다. 가장 마지막에 입력된 자료가 가장 먼저 읽힌다. (LIFO) ※ LIFO: Last In First Out, 후입 선출구조 자료 저장: push 자료 읽기: pop 사용 : 브라우저 사용기록, 실행 취소 주요 메소드 push(): 객체 입력 peek(): 스택의 맨 위 객체를 가져온다. 제거 x pop(): 스택의 맨 위 객체를 가져온다. 제거 o Stack st = new Stack(); st.push("1"); st.push("2"); st.push("3"); st.push("4"); st.push("5"); //추출 while (!st.isEmpty()) { String str = st.pop(); System.out.prin.. 2021. 7. 19.
[Java] 랩퍼클래스 Wrapper Class 랩퍼클래스 Wrapper Class 자료형은 기본형(Primitive, P타입)과 참조형(Reference, R타입)으로 나뉘는데, 컬렉션에 값을 담을 때 참조형(R)만 담을 수 있고 기본 자료형(P)은 담을 수 없기 때문에 P타입 자료형을 R타입 자료형으로 만들어 줄 때 랩퍼 클래스를 사용한다. 기본 자료형의 값을 멤버 변수의 값으로 저장하고, 이 값 주위로 값을 가공하는 메소드들이 감싸고 있다고 해서 랩퍼(Wrapper) 클래스라고 불린다. 다음과 같이 모든 기본 자료형에 대해 그에 대응하는 랩퍼 클래스가 있다. 기본 자료형 랩퍼 클래스 byte Byte short Short int Integer long Long float Float double Double char Character boolean.. 2021. 7. 13.
[Java] 열거 타입 Enum 열거 타입 Enum Enum은 String처럼 클래스처럼 보이는, 자료형이다. 보통 서로 관련 있는 상수들을 모아 심볼릭한 명칭의 집합으로 정의하는 용도로 쓴다. 다음과 같이 자료형 키워드 위치에 'Enum'을 적어 선언한다. public Enum 클래스이름{ ... } Season에는 Spring, Summer, Fall, Winter 라는 상수가 있다. package enumtest; public enum Season { Spring, Summer, Fall, Winter } 이 Season 열거타입을 이용하여 다음과 같이 활용할 수 있다. String 처럼 "Spring"과 같이 바로 대입하면 안되고, Season.Spring 과 같이 표현하여야 한다. package enumtest; public .. 2021. 7. 13.
[Java] 다형성 Polymorphism 다형성 Polymorphism 같은 타입이지만 실행결과가 다양한 객체를 이용할 수 있는 성질을 말한다. 코드 측면에서 보면 다형성은 하나의 타입에 여러 객체를 대입함으로써 다양한 기능을 이용할 수 있도록 해준다. 다형성을 위해 자바는 부모 클래스로 타입 변환을 허용해준다. 즉 부모타입에 모든 자식객체가 대입될 수 있다. 이를 이용하여 객체를 부품화할 수 있다. 단, 다형성은 동적 바인딩(런타임 때 최종 타입이 결정되는 것)이 지원되어야 한다. EX01. 어벤져스 Hero 클래스를 상속받은 Ironman, Hulk, Spiderman, Thor클래스가 각각의 위치(하늘, 땅, 바다, 우주)를 담은 변수를 갖고, 각기 다른 공격방식(Javis, 주먹, 거미줄, 번개)을 갖도록 하였다. package poly.. 2021. 7. 13.
[Java] String Builder / String Buffer StringBuilder / StringBuffer String은 소위 불변 객체라고 한다. 2개의 String 객체가 있을 때, 두 객체를 더하는 연산을 하면 새로운 String을 생성한다. 즉 더하는 행위는 메모리 할당과 메모리 해제를 발생시키며 더하는 연산이 많아진다면 성능이 낮아지는 결과로 이어질 수 있다. StringBuilder/StringBuffer는 String끼리 더할 때 새로운 객체를 생성하는 것이 아니라, 기존의 데이터에 더하는 방식을 사용하므로 속도가 빠르고 상대적으로 부하가 적다. 따라서 긴 문자열을 더하는 상황이 발생할 경우 StringBuilder를 적극적으로 사용하는 것이 좋다. StringBuilder는 클래스 안에 배열 공간을 미리 만들어놓고 문자열을 추가하는 함수가 호출.. 2021. 7. 9.
[Java] 생성자 Constructor 생성자 Constructor 객체를 생성할 때 사용하는 실제 객체를 생성해주는 코드이다. 즉 생성자 없이는 개체를 만들 수 없다. 생성자는 메소드와 유사한 형식을 가지고 있지만, OOO( ) 메소드와는 기능적인 부분에서 차이가 있다. 1. 생성자의 형식 생성자의 이름은 반드시 클래스 이름과 같아야 한다. 메소드가 아니기 때문에 리턴타입(반환타입)을 선언할 수 없다. 2. 기본 생성자 Default Constructor 파라미터가 없는 생성자를 기본 생성자라고 한다. 기본 생성자를 이용해서 생성된 객체는 기본 객체라고 하며, 모든 필드 값은 기본 값으로 초기화 된다. 클래스에 생성자를 따로 정의해주지 않으면 자바에서 기본 생성자를 자동으로 만들어준다. 즉, 클래스에 생성자가 하나라도 있다면 기본 생성자가 .. 2021. 7. 9.