JAVA 11

[Java] Java 1.8을 왜 많이 쓸까?

1. Java 1.8을 왜 많이 쓸까? - 1. 지원 버전 - 2. Java 버전에 맞는 JDK 이름 2. Java 1.8에 생긴 큰 변화 1. 함수형 인터페이스 -1.1 왜 나왔을까? 2. 디폴트 메소드 -2.1 왜 나왔을까? 3. 람다식 -3.1 왜 나왔을까? 4. 스트림 - 4.1 왜 나왔을까? 5. 옵셔널 - 5.1 왜 나왔을까? 1. Java 1.8을 왜 많이 쓸까? 1.1 지원 버전 Java 1.8버전은 2014년에 등장했다. (거의 10년전에 나왔네..) 1.8 버전에서 새로운 개념들이 많이 생기기도 했고, 오라클사에서 오랫동안 지원해준다고 발표했기때문이다. (2030년도까지) 요즘 많이 사용하는 1.8 , 11 , 17 버전 통틀어서 제일 오래전에 나온 1.8 버전이 제일 오랫동안 지원을 ..

JAVA 2023.06.11

[Java] Equlas 와 hascode를 재정의하는 이유

목차 1. Equlas 란? 2. Hashcode 란? 3. 그래서 어떤상황에서 같이 재정의를 해야하는가? 1. Equals란 ? 객체는 기본적으로, 오버라이딩을 해서 재정의 하지않으면 Object의 equals의 메소드를 사용한다. Object의 equals 내부를 보면 ==로 비교하는데 ==는 객체의 주소 값 자체를 비교하는것이다. 무엇이 나올것 같은가? 정답은 false가 나온다. 객체의 주소값은 당연히 new로 생성 했기 때문에 서로 다른게 정상이지만, 논리적으로 생각해보자. 위의 코드에선 홍길동이란 사람과 휴대전화번호가 두개가 같다. 그럼 현실 세계에선 두명의 사람일까? 휴대전화는 중복될수없는 고유정보인데? 우리는 논리적으로 같은 객체라고 판단하기위에 객체에 equals를 재정의해보자. 오버라이..

JAVA 2022.05.28

[Java] String , StringBuffer , StringBulider 차이점

String - 불변의 속성을 가진다. * 문자열에 추가,수정,삭제 등의 연산이 빈번하게 발생할땐 사용하지말자 1 2 3 4 String abc = "abc"; abc += "def"; System.out.println(abc); cs (위와 같이 코드를 찍으면 값자체는 abcdef 가 나오겠지만 메모리적으로 본다면 제일처음에 abc라는 x100이라는 변수는 주소값을 가지고 있고, abc에 값을 추가해도 String 의 불변이라는 속성때문에 abcdef라는 x200번지의 주소를 새로 만들어서 값을 넣어서 사용자에게 출력하는것이다. 남아있던 x100은 나중에 GC(가비지컬렉터) 가 처리한다.) StringBuffer - String과 차이점은 .append(), delete() 등의 메서드를 사용해 동일 ..

JAVA/정리 2021.08.25

[Java] 자바란 무엇인가?

자바의 탄생과 역사 - 자바는 1991년 썬 마이크로 시스템즈 사에서 제임스 고슬링 이 고안한 프로그래밍언어이다. 자바의 특징 - 자바는 객체지향 프로그래밍(OOP, Object Oriented Programming) 언어이다. - 자바의 정석 책에서는 자바 언어자체가 현실세계를 모방하고 만든언어라고한다. 객체지향 프로그래밍(OOP) 이게뭔데? - 객체지향 프로그래밍이란 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결하여 전체 프로그램을 완성하는것 ( 대표적인 예로 자동차를 들수 있다. 자동차에는 창문,바퀴,엔진,등등 다 객체이다 이 부품(객체)들을 각자 만들어서 합치면 자동차가 되고 그것이 굴러가는것이다.) OOP도 이런원리랑 똑같이, 클래스(설계도)를..

JAVA/끄적끄적 2021.08.25

[JSP] 서블릿(Servlet)이란?

1. Servlet(서블릿) 서블릿을 한줄로 정의하자면 아래와 같다. 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의 구현 규칙을 지킨 자바 웹 프로그래밍 기술 간단히 말해서, 서블릿이란 자바를 사용하여 웹을 만들기 위해 필요한 기술이다. 그런데 좀더 들어가서 설명하면 클라이언트가 어떤 요청을 하면 그에 대한 결과를 다시 전송해주어야 하는데, 이러한 역할을 하는 자바 프로그램이다. 예를 들어, 어떠한 사용자가 로그인을 하려고 할때 사용자는 아이디와 비밀번호를 입력하고, 로그인 버튼을 누릅니다. 그때 서버는 클라이언트와 아이디와 비밀번호를 확인하고, 다음페이지를 띄워주어야 하는데 이러한 역할을 수행하는 것이 바로 서블릿(Servlet)입니다. 그래서 서블릿은 자바로 구현된 *CGI..

JAVA/JSP 2021.06.23

[Java] 자료구조 List, Set, Map의 차이

List , Set, Map 의 차이점에 대해 알아보겠다. 1. List : 저장공간이 필요에 의해 자동으로 늘어난다(순서가 있는 저장공간) * 특징 : 순서가 있고, 중복을 허용(배열과 유사) * 장점 : 가변적인 배열(배열이 자동으로 늘어남) * 단점 : 원하는 데이터가 뒤쪽에 위치하는경우 속도의 문제 * 방식 : equals()를 이용한 데이터 검색 List의 자료구조는 크게 Vector, ArrayList, LinkedList로 나뉘어 진다. 1) ArrayList: 객체 내부에 있는 배열에 데이터를 저장한다. - 상당히 빠르고 크기를 맘대로 조절할수 있는배열 - 단방향 포인터 구조로 자료에 대한 순차적인 접근에 강점 2) Vector : ArrayList와 동일하게 사용가능하다. - ArrayL..

JAVA 2021.05.31

[JSP] EL / JSTL 정리

EL의 개념은 해석 그대로 표현 언어를 이해하고 속성 값들을 편리하게 출력하기 위해 제공된 언어이며, JSTL은 표준 액션태그로 처리하기 힘든 부분을 담당합니다. EL(Expression Language)은 를 ${abc}로 간단하게 사용할 수 있게 하였고, JSTL의 Core에서 c를 이용해 문을 , 문을 로 대체하여 사용합니다. JSTL 태그 종류 ▼ 태그 종류ㅓㅅ (1) Core (prefix : c) → 일반 프로그래밍에서 제공하는 것과 유사한 변수선언 → 실행 흐름의 제어 기능을 제공 → 페이지 이동 기술 제공 URI → http://java.sun.com/jsp/jstl/core (2) Formatting (prefix : fmt) → 숫자, 날짜, 시간을 포매팅하는 기능을 제공 → 국제화, ..

JAVA/JSP 2021.05.10

[Java] 자바 예외 처리(로그 파일에 기록)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 import java.io.*; import java.util.*; class ExceptionEx { public static void main(String args[]) { PrintStream ps = null; FileOutputStream fos=null; try { try { File file = new File("C:\\Users\\popo\\Desktop\\stock-toy\\stock-toy\\err\\VI_log.txt"); //파일생성 경로지정 fos = new FileOutputStream(file,true); // VI_log파일에 출력 준비 ps=new..

JAVA/끄적끄적 2021.03.09