Java 50

PreparedStatement 란? 기본개념, 장점, 성능향상, 메서드 활용과 주의사항 등

(구)웹에서 무지성으로 대충 내용만 알고 사용하던 방식을 이번에 정리가 하고 싶어서 작성하게 되었습니다.   PreparedStatement란?PreparedStatement는 자바(Java)의 JDBC(Java Database Connectivity) API에서 제공하는 인터페이스로, 데이터베이스와 상호작용할 때 SQL 쿼리를 안전하고 효율적으로 실행할 수 있게 해주는 도구입니다.  기본 개념PreparedStatement는 일반적인 Statement와 달리, SQL 쿼리를 미리 컴파일하고 실행 시점에 파라미터 값만 바인딩하는 방식으로 동작합니다.  작동 방식 (단계별) SQL 쿼리 준비: 물음표(?)를 사용하여 값이 들어갈 자리를 표시합니다.쿼리 컴파일: 데이터베이스가 쿼리를 미리 분석하고 실행 계획..

Java/Java 2025.04.09

Http Get 요청 - 인증된 사용자만 세션키 받아오기

서버와 통신하기 위해 만들었다 HttpURLConnection을 이용하여 통신하였으며, GET method를 이용하여 올바른 사용자 이름과 비밀번호를 제공해야 sessionKey를 할당 받게 만들었다. 간단한 권한 부여를 만들기 위해 예를 든 내용이기 때문에 실제 환경에서는 더 강력한 인증, 권한을 부여해줘야 한다. 또한 여기에서는 자바만이 보여지는데 실제로는 DB를 사용해서 정보를 저장해야한다. 전체코드import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import org.json.JSONE..

Java 2023.09.09

Java 음성 소켓 통신(서버, 클라이언트) 기초

✔ Server import java.io.*; import java.net.*; import javax.sound.sampled.*; public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket = null; try { // 서버 소켓 생성 serverSocket = new ServerSocket(12345); System.out.println("서버가 12345번 포트에서 연결 요청을 기다리고 있습니다..."); // 클라이언트 연결 대기 Socket clientSocket = serverSocket.accept(); System.out.println("클라이언트가 접속..

Java/Java 2023.04.21

JAVA 채팅 프로그램

✔ JAVA 채팅 프로그램 쓰레드 병렬처리 ServerSocket의 accept() 실행하면 해당 작업이 완료되기전까지 블로킹(blocking)이 일어남 쓰레드를 사용하면 블로킹이 일어나는 현상을 해결할 수 있음 DataInputStream - 기본 데이터타입 단위로 데이터를 읽을 수 있음 - byte 단위로 데이터를 읽는 것이 아님 - readUTF() : UTF-8(모든 언어가 사용가능한) 형식으로 코딩된 문자열을 읽을 수 있음 DataOutputStream - 기본 데이터타입 단위로 데이터를 쓸 수 있음 - byte 단위로 데이터를 쓴는 것이 아님 - writeUTF() : UTF-8(모든 언어가 사용가능한) 형식으로 코딩된 문자열을 출력할 수 있음 서버 import java.io.DataInput..

Java/Java 2022.10.20

JAVA (TCP/IP, 서버 클라이언트)

2. TCP/IP 네트워킹 소켓(socket) - 두 호스트 사이 연결 - 어떠한 방식으로 통신을 할지도 정해주는 것 - 원격 장비에 연결, 데이터 전송(보내기, 받기), 포트 지정, 수신 대기(서버와 클라이언트 관계(c/s), p2p) ServerSocket 클래스 - 클라이언트의 연결 요청을 기다리면서 연결 수락을 담당하는 클래스 (대기하다가, 일반소켓을 만들고 일반 소켓끼리 통신할 수 있도록 만들어 연결을 해주는 역할) -> 서버부터 실행을 해야한다.(대기상태에서) Socket 클래스 - 연결된 클라이언트와 통신을 담당하는 클래스(사용자가 접속할 수 있는) 문제. 에코서버를 만들어보자. 데이터 클라이언트 -----> 서버 5 밖으로 보넬 아웃풋 스트림을 통해 나갈거 만들고 -> 버퍼에다 담을거기 떄..

Java/Java 2022.10.20

JAVA 네트워크

1. 네트워크(Network) - Net + work 합성어 - 컴퓨터들이 통신 기술을 이용하여 그물망처럼 연결된 통신 이용형태 인터넷(Internet) - 컴퓨터로 연결하여 TCP/IP 프로토콜을 이용하여 정보를 주고받는 네트워크 ✔ IP(Internet Protocol) - 인터텟 연결되어 있는 모든 장치를 식별할 수 있도록 장비에게 부여되는 고유 주소 ✔ IPv4 - 8bit씩 4자리 - 하나의 스텟마다 0 ~ 255 (0 ~ 42억9천) 예) 211.100.85.100 - 향후 IPv6, 32bit 내 아입피 확인 - 네이버 "내 ip"로 검색 -> 123.142.55.115 - cmd -> ipconfig -> 192.168.12.12 도메인 -> IP, IP -> 도메인 - cmd -> nsl..

Java/Java 2022.10.20

자바 제네릭(Generic)

1. 제네릭(Generic) 클래스나 메소드에서 사용할 데이터의 타입을 컴파일시에 미리 지정하는 방법 제네릭을 사용하는 이유 - 다양한 타입의 객체의 재사용을 높일 수 있음 - 클래스에서 사용할 타입을 외부에서 사용 - 반복적인 코드, 불필요한 코드를 사용하지 않도록 함 - 강제적인 형변환을 발생시키지 않음 public class Generic1 { public static void main(String[] args) { // Box2 box1 = new Box2(); // Box2 box1 = new Box2(); Box2 box1 = new Box2(); box1.setT("안녕하세요"); System.out.println(box1.getT()); String str = box1.getT();// 형..

Java/Java 2022.10.12

자바 스레드

1. 스레드(Thread) 프로세스 - 윈도우 작업 관리자에서 프로세스 탭에 올라와 있는 어플리케이션 하나 - 운영체제로부터 필요한 메모리를 할당받아 어플리케이션 코드를 실행 멀티 태스킹 - 두가지 이상의 작업을 동시(병렬작업)에 처리하는 것 스레드 - 하나의 프로세스 내부에서 독립적으로 실행되는 작업단위 - 운영채재애 의해 관리되는 하나의 작업 혹은 Task를 의미 - 다중 스레드 작업시에는 각 스레드끼리 정보를 주고 받을 수 있어 처리 과정의 오류를 즐일 수 있음 - 각 프로세스는 서로 정보를 주고 받을 수 없음 - JVM에 의해 하나의 프로세스가 발생, main() 안에 실행문들이 하나의 스레드 멀티 스레드 - 여러 스레드를 동시에 실행시키는 응용프로그램을 작성하는 기법 - 메모리 공유로 인한 시스..

Java/Java 2022.10.07

자바 영어단어장

영어단어장 프로그램을 작성해보자. 1. 지난 단어장을 수정하여 save라는 명령을 입력하면 wordbook.txt 단어를 저장 2. 프로그램을 재시작할 때 wordbook.txt에서 단어를 읽어와 메모리에 저장 public class World {//먼저 변수를 선언한다. private String english; private String korean; private int level; private String wdate; // 변수가 private로 선언되어 있기 때문에 this를 이용하영 받아온 값을 넘겨준다. public World(String english, String korean, int level, String wdate) { this.english = english; this.korea..

Java/Java 2022.10.07

자바 File 다루기

3. 파일 다루기 File 클래스 파일 또는 디렉토리 다루는 클래스 입출력 관한 작업 File 참조변수 = new File(파일 경로 또는 파일이름); ✔ 스트림(Stream) - 자바는 파일이나 콘솔에 입출력을 직접 다루지 않고 스트림이라는 흐름을 통해 다룸 - 운영체제에 의해 생성되는 가상의 연결고리를 의미하고 중간 매개자 역할을 함 Java 프로그램 OS(운영체제) 디스크(파일, 디렉토리) 스트림(흐름) 모니터, 프린터, 네트워크... ✔ 절대경로 믈리적인 경로 예) C:\Java\Day9\Day9.txt ✔ 상대경로 현재 동작하고 있는 파일을 중심으로 상대적인 경로 예) Day9.txt, 디렉토리명/Day9.txt, ../Day9.txt import java.io.File; import java...

Java/Java 2022.10.07

자바 예외처리

2. 예외 처리(Exception) 오류(error) 자바 컴파일러에 의해 문법 오류를 발생 예외(exception) 문법이 맞게 작성되었다 하더라도 프로그램을 실행하면서 예상하지 못한 오류가 발생 프로그램 실행 중 비정상적으로 종료 예측할 수 있는 예외, 예측 못하는 예외 ✔ 예외가 발생하는 원인 - 사용자가 잘못된 데이터를 입력하는 경우 - 개발자가 로직이나 계산을 잘못 작성한 경우 - 하드웨어나 네트워크가 제대로 동작하지 못하는 경우 - 악의적으로 잘못된 연산을 요구하거나 시스템을 공격 예외의 종류 - 예외 상황에 맞춰 문제를 처리하기 위해 다양한 예오처리가 있다. - 컴파일시에 예외 발생 - 런타임시에 예외 발생 [Exception] // 모든 예외를 처리 [IOExcerption] [FileNo..

Java/Java 2022.10.06

자바 Map 인터페이스

✔ Map 인터페이스 : - 키와 값을 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없고, 키는 중복으로 허용하지 않지만 값운 중복으로 허용 HashMap, TreeMap, HashTable HashMap 클래스 - Map 인터페이스를 구현한 대표적인 클래스 - 키와 값으로 구성된 요소객체를 저장하는 구조를 가지고 있는 자료구조 - 키는 중복될 수 없고, 값은 중복될 수 있음 - 기존의 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체(키 값은 중복X) - 해싱(Hashing)을 사용하기 때문에 많은 양의 데이터를 검색하는데 뛰어난 성능 - 비동기식(여러개의 프로그램을 동시에 처리, 시간이 오래걸리면 다음 문장으로 이동 후 동작하는 방식) TreeMap 클래스 - 이진트리..

Java 2022.10.06

국비지원 자바 복습 9(Generic, 컬렉션 프레임워크)

1. 제네릭(Generic) 클래스나 메소드에서 사용할 데이터의 타입을 컴파일시에 미리 지정하는 방법 제네릭을 사용하는 이유 - 다양한 타입의 객체의 재사용을 높일 수 있음 - 클래스에서 사용할 타입을 외부에서 사용 - 반복적인 코드, 불필요한 코드를 사용하지 않도록 함 - 강제적인 형변환을 발생시키지 않음 ✔ Object 클래스 - 자바의 모든 클래스의 최상위 조상 클래스 - 모든 타입은 Object 클래스 객체화 시킬 수 있음 - 기본 데이터 타입을 객체화 시킨 래퍼타입으로 대입 받을 수 있음 2. 컬렉션 프레임워크(Collection Framework) - 여러가지 데이터를 메모리에 쉽고 효과적으로 처리할 수 있도록 제공하는 클래스들릐 집합 - 자료구조를 구현한 클래스들의 모음 @ 자료구조 : - ..

Java/Java 2022.10.06

국비지원 자바 복습 8(래퍼, 추상 클래스, 인터페이스, static)

1. 래퍼 클래스(Wrapper Class) - 포장 - 기본형(primitive type) 변수 데이터를 객체로 취급해야 할 경우 객체로 포장해주는 클래스 - 자바는 객체지향 언어이지만 기본형이라는 예외를 둔 이유는 성능때문 @배열의 단점 1. 배열의 수를 미리 저장해야한다.(최댓값을 넘을 경우 새로 선언하거나 변경해야 하는 단점) 2. 배열의 타입을 상이하게 사용할 수 없다. 3. 인덱스 번호를 모를 경우 주소 값을 처음부터 일일히 대조해야한다는 단점을 가지고 있다. 래퍼 클래스가 필요한 이유 - 기본형 변수는 값을 저장하고, 첨조형 변수는 주소를 저장하기 때문 - 컬렉션 프리임워크(자료구조와 데이터를 처리하는 알고리즘)는 참조형 변수만을 다루기 때문 - 멀티쓰레딩(다수의 스레드를 동시에 이용하는 작..

Java/Java 2022.10.05

국비지원 자바 복습 7 (객체의 배열, Object, 상속, 업/다운 캐스팅)

1. 객체의 배열 클래스 이름 참조변수 = new 클래스이름[요소의 갯수]; int[] arr = new int[3]; arr[0] = 10; ​ // 아직 객체화는 아니고 배열을 만든것일 뿐 Student[] arr = new Student[3]; arr[0] = new Student(); //student 객체를 arr[]에 0번방에 저장하게 된다. arr[0].setNo(1); arr[0].setName("song"); .... ​ arr[1] = new Student();// 주소마다 객체를 다시 선언해줘야 한다. arr[1].setNo(2); arr[1].setName("hun"); .... ​ @ arr[0] = student[0];//잘못된 입력 ​ 2. object 클래스 -java.lan..

Java/Java 2022.10.04

국비지원 자바 복습 6 (메소드, 메인메소드, opp, 클래스)

1. 메소드(method) - 어떤 로직이나 기능을 만들어 내는 방법(함수) - 코드를 재활용 할 수 있도록 하여 경제적으로 코드를 작성할 수 있음 - 객체를 생성하여 참조변수를 통해 호출할 수 있는 함수 ​ 접근제어자 [static] 변환타입 메소드이름([매개변수1, 매개변수2..]) { //매개변수 : 원하는 값을 넣을 수 있다. // 반환타입이 없을 경우 void를 사용한다. 메소드이름이 호출되면 실행할 문장; ... [return 반환값] // 내가 원하는 값을 돌려준다. 메소드 호출한곳으로 // 반환값은 반환타입과 동일하게 사용한다. } ​ // static : 객체를 생성하지 않아도 코드가 실행되면 메모리에 적재된다 public static int sum(int num1, int num2){ ..

Java/Java 2022.10.04

국비지원 자바 복습 5 (2차원 배열, String 클래스, 주민등록 검증)

1. 2차원 배열 값이 행과 열로 구성된 배열 ​ 1차원 데이터타입[] 배열이름 = new 데이터타입[갯수]; int[] arr = new int[5]; arr[0] = 10; //1차원 배열에서 한번에 초기화 및 변수선언 int[] arr = {10, 20, 30}; // new int 생략 가능하다. ​ 2차원 데이터타입[][] 배열이름 = new 데이터타입[행갯수][열갯수];// |(행)-(열) int[][] arr = new int[2][3]; [0,0] [0,1] [0,2]0행 [1,0] [1,1] [1,2]1행 0열 1열 2열 ​ arr[0][0] = 10; arr[0][1] = 20; .. arr[1][2] = 60; ​ // 2차원 배열의 선언 및 초기화 int[][] arr = {{10,..

Java/Java 2022.10.04

국비지원 자바 복습 4 (반복 문, 배열)

1. 반복문 - while문 ​ while(조건식){ 조건식의 결과가 true인 동안 반복할 문장; ... } ​ int num = 10; while(num >= 10){ //밑에서 후위연산 후 올라와서 빠진다. System.out.println("num은 10보다 큽니다."); //무한루프 때문에 중괄호가 필요하다. num--; } (while)문제 1 ~ 100까지의 짝수의 총합을 구하는 프로그램을 작성 - for문 ​ for(변수의 초기화; 조건식; 증감식){ 조건식이 true인 동안 반복할 문장 } ​ for(int i=1; i random은 0.99999까지이기 때문이다. ​ 1 ~ 45의 사이에 랜덤한 값을 추출 double rn = Math.random(); (int)(rn * 45) + 1..

Java/Java 2022.10.04

국비지원 자바 3(타입변환, 제어 문, 성적프로그램)

1. 타입 변환 - 연산은 기본적으로 같은 타입의 피연산자와 수행 - 서로 다른 타입의 피연산자가 있을경우 두 피연산자 중 크기다 큰 타입으로 자동변환 EX) 10 / 3.0 = 3.3333... 실수형이 정수형보다 크기(소수)가 크기 때문이다. 정수 byte, (byte)변수명 ​ ​ ✔ Scanner 클래스 -> 조건/제어문 들어가기 전에 미리 알아보자 - 자바에서 여러가지 데이터를 입력받을 수 있도록 도와주는 대표적인 입력관련 클래스 - java.util 패키지(폴더별로 나누어 둔것이라고 생각하자)에 존재 ​ 변수 -> Stack에 저장 데이터타입 변수이름 = 값; int num = 10; 객체 -> new가 나오면 ..

Java/Java 2022.10.04

자바 오류, 람다, API - 학원

람다복습 ​ 오류의 종류 에러(Error) : 개발자가 해결할 수 없는 문제 (코드로 수습 불가) 예외(Exception) : 개발자가 해결 가능한 문제 (코드로 수습 가능) ​ 예외의 발생 시점 확인된 예외(checked exception) 컴파일 단계에서 발생하는 예외(이클립스 빨간줄) 미확인 예외(unchecked exception) 프로그램 실행 중(런타임) 발생하는 예외 ​ 예외 처리 예상되는 예외를 적절한 처리를하여 비정상적인 종료를 막는다. ​ 예외 처리 문법 ​ try{ 실행할 명령문 }catch(예외이름 변수명){ 예외를 처리하는 명령문 }catch(예외이름 변수명){ 예외를 처리하는 명령문 }.... }finally{ 오류 발생 여부에 상관없이 무조건 실행할 코드 } ** catch는 ..

자바 내부 클래스, 외부 클래스, 람다식 - 학원

​ # 내부 클래스(Inner Class) 클래스 내부애 선언된 클래스를 내부 클래스라고 한다. 내부 클래스를 가진 클래스를 외부 클래스라고 한다. ​ 클래스를 구성하는 멤버로 변수, 메소, 생성자 뿐만 아니라 클래스도 가질 수 있다. 만약 B 클래스를 A클래스에서만 사용한다면 B클래스를 내부클래스로 만들어 사용한다. ​ 외부 클래스가 메모리에 할당되야 내부 클래스의 객체화가 가능하기 때문에 B를 별도로 사용하지 못한다. 내부 클래스는 외부 클래스의 멤버이기 때문에 외부 클래스의 멤버를 상속없이 사용할 수 있다. ​ 내부 클래스의 종류 - 인스턴스 내부 클래스 - 스태틱 내부 클래스 - 로컬 내부 클래스 ​ ​ ​ # 익명 클래스(Anonymous Class) 이름이 없는 클래스 ​ ​ # 함수형 인터페..

자바 - 추상메소드, 추상클래스, 인터페이스 - 학원

# 추상 메소드 ​ 메소드를 선언만하고 구현을 하지않은 것을 추상 메소드라고 한다.(마완성된 메소드) ex) abstract void 메소드명(매개변수) 1. abstract 키워드를 사용한다. 2. 마지막에 세미콜론을 써야한다. ​ ​ # 추상 클래스 ​ abstract 카워드가 붙은 클래스는 추상 클래스이며 , 추상 메소드가 한 개 이상 있는 클래스는 반드시 추상 클래스로 선언한다.(미완성된 클래스) ex) abstract class 클래스명 { abstract void 매소드명(매개변수) *일반 메소드도 선언 가능 } 1. abstract 키워드를 사용한다. 2. 객체화 시킬 수 없다. ​ ** 미완성된 메소드(추상 메소드)는 상속받은 자식 클래스에서 반드시 재정의하여 구현을 해야만 해당 클래스를 ..

자바 접근 권한 제어자, Casting -학원

# 접근 권한 제어자(접근자) ​ 주로 클래스의 멤버(변수, 메서드)에 접근을 제어하기 위해 사용한다. ​ public : 모든 곳에서 접근 가능, 대표 클래스를 의미할 때 사용 protected : 다른 패키지에서 접근 불가, 자식은 허용 default : 다른 패키지에서 접근 불가 ( 별도로 명시하지 않고 접근제어자 생략시 자동으로 default가 됨) private : 다른 클래스에서 접근 불가, 메소그로만 접근하자! (getter, setter) ​ //alt shift s -> r 접근 권한 제어자 설정하기 ​ ​ # Casting ​ up casting : 자식 값을 부모 타입으로 형변환 down casting : 이미 up casting된 값을 다시 자식 타입으로 형변환 ※ 부모 값을 자식 ..

자바 상속 - 학원

상속(inheritance) 1. 기존에 선언된 클래스의 멤버(생성자는 제외)를 새롭게 만들 클래스에서 사용하고 싶을 때 상속을 받고 새로운 기능만 추가한다. 2. 여러 클래스 선언 시 멤버가 겹치는 경우, 부모 클래스를 먼저 선언하고 공통멤버를 자식 클래스에게 상속해준다. ​ ​ 상속 문법 ​ class Parents{ Parents멤버 } ​ class Child extends Parents{ Parents, Child 멤버 } ​ ​ super : 부모의 참조값 부모의 멤버에 접근할 때 사용한다. ​ super() : 부모 생성자 자식 클래스 타입의 객체로 부모 필드에 접근할 수 있다. 우리는 객체를 만들 때 자식 생성자만 호출하기 때문에, 자식 필드만 메모리에 할당된다고 생각할 수 있다. ex)C..

자바 학원 필기 9

# 2022.09.02 //art shift a 커서 키워서 한번에 지우기 ​ # 다마고치 문제 복습 ​ ​ package day08; ​ import java.util.Scanner; ​ class Creature { // 캐릭터 이름 String name; // hp int hp; // 밥먹은 수 int eatCnt; // 턴 int turn; // 변 boolean poo; ​ ​ ​ ​ ​ public Creature(String name, int hp) { this.name = name; this.hp = hp; } ​ // 먹기 : 턴을 1중가, hp 2증가 void eat() { this.turn++; this.hp += 2; this.eatCnt++; } ​ // 자기 : 3초 동안 잠에 ..

자바 클래스 - 학원

# 클래스 ​ 객체지향 프로그래밍(Object Oriented Prigramming) 이란? (OOP) 추상화된 클래스로 객체를 만들고 객체들 간의 관계를 맺어 상호작용하는 프로그래밍 기법 ​ 추상화란? (객체 모델링) 공통적인 특징을 파악하여 하나의 묶음으로 만들어내는 것 ​ 클래스 1. 사용자 정의 타입이다. - 클래스를 사용하면 여러 타입, 여러 값을 저장할 수 있는 저장공간을 만들 수 있다. - 클래스 안에 선언된 변수와 메서드를 서용하고 싶다면, 해당 클래스 타입으로 변수를 선언해야 한다. ​ 2. 연관성 있는 저장공간과 기능을 한 곳에 모아 편하게 관리할 수 있다. - 저장공간과 기능을 나누어 관리하게되면 코드가 길어졌을 때 사용하기 불편하다. 이때 연관되는 저장공간과 기능을 클래스로 묶어서 ..

자바 학원 필기 7

# 메소드 ​ 자료형 메소드명(매개변수){ 실행할 코드; return 리턴값; } 변수명.메소드명() ​ 함수와 메소드 클래스 밖에 선언되어 있다면 함수라고 부르지만 클래스 내부에 선언되어 있는 함수는 메소드라고 부른다. 자바에서는 모든 함수가 클래스 내부에서 선언되기 때문에 메소드만 존재한다. 개념 상 함수가 메소드보다 더 큰 범주이므로 메소드를 함수라고 불러도 되지만, 자바는 메소드만 존재하므로 메소드라고 부르는게 좋다. ​ 메소드 기능 이름 뒤에 소괄호. 단, 키워드 뒤에 소괄호는 메소드가 아니다. ​ ​ 메소드 선언과 구현 리턴타입 메소드명(자료형 매개변수명, .....)

자바 배열 실습문제, 메소드

# 배열 실습문제 ​ ​ - 1. ​ package day06; ​ public class ArrayTest { ​ public static void main(String[] args) { // 배열 선언 후 1~10까지 값 넣기 // int ar[] = new int[5]; 가능 ​ int[] arData = new int[10];// 이 방식으로 사용하자. (java) ​ for (int i = 0; i < arData.length; i++) { arData[i] = i + 1; } for (int i = 0; i < arData.length; i++) { System.out.println(arData[i]); } } ​ } ​ ​ - 2. ​ package day06; ​ import java.ut..

자바 학원 필기 5

# 복습 switch ​ ​ ​ ​ # 반복문 ​ - 대입연산자 - 복합 대입 연산자 (누적 연산자) ​ - (+=,-=,/=,*=,%=,.............................) - int money = 1000; - money + 1000; // money += 1000; - syso(money); // 2000 - money -= 1000 - syso(money); // 1000 ​ ​ - 증감 연산자(++,--) - 전위 형(++i, --i) : 해당 라인부터 바로 적용 - 후위 형(i++, i--) : 다음 라인부터 적용(정확히는 증감연산자가 끝난 시점부터 적용) ​ ​ ​ ​ ​ - for 문- 몇 번 박본할지 알 때(음식이 나오면 진동벨 5번 울린다.) ​ - for(초기식; 조..

자바 학원 필기 4

# 비트 연산 ​ - 논리 연산자 ​ - (&) - (엠퍼센트/ AND,논리곱) - 전부 1일 경우 1 - (|) - (OR, 논리합) - 하나라도 1이면 1 - (^) - (XOR, 배타논리합) - 서로 달라야 1 같으면 0 ​ - 단항 연산자 ​ - ( ~) - (NOT, 논리부정) - 부호 비트연산자 양수면 0 음수면 1, // ~a = -a -1 쉬프트 연산자 - (B, A를 B만큼 우로 비트이동 // 넘치면 자르며, 빈 칸은 양수일 때는 0으로, 음수 일때는 1로 채워진다. ​ // final int REICE = 300; // REICE(상수) 값을 변경할 수 없도록 하는 // 변수에 ctrl을 누르고 마우스를 누르면 해당 변수로 이동한다. ​ - 조건식 - 결과가 참 또는 거짓, 둘 중 하나..