JAVA 20

Java란 어떤 언어일까?

Java Java는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어이다. Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점이다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 JVM(자바 가상 머신)이다. 장점 JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다. GabageCollector를 통한 자동적인 메모리 관리가 가능하다. 단점..

JAVA 2023.02.23

[ JAVA ]접근제어자(Access modifier)란?

접근제어자 : 접근지정자라고도 부르며 접근제어자를 설정하여 외부에서 클래스, 메소드, 멤버변수, 생성자에 접근하지 못하도록 제어하는 역할을 한다. - 접근제어자를 사용하는 이유 : 외부에서 수정하지 못하도록 막아 안전하게 보호할 수 있다. - 접근제어자의 종류 : public, default, protected, private 접근제어자를 아무것도 제시하지 않은 경우 default로 지정되며, default는 생략이 가능하다. - 접근 권한 : public > protected > default > private public : 제한없이 어떤 클래스에서도 접근이 가능하다. protected : 해당 패키지의 클래스와 다른 패키지의 자식클래스에서 접근이 가능하다. default : 해당 패키지의 클래스에서..

JAVA 2023.01.14

JAVA용어에 대해서 SE, JDK, JRE, JVM 등...

JAVA(자바)용어 정리 Java SE(Java Platform, Standard Edition) 데스크톱 및 서버, 최근의 고사양 임베디드 시스템을 위한 표준 자바 플랫폼으로 표준적인 컴퓨팅 환경을 지원하기 위한 자바 가상 머신 규격 및 API 집합을 포함한다. 따라서 JAVA EE, JAVA ME 등 다른 플랫폼은 구체적인 목적에 따라 JAVA SE를 기반으로 API를 추가하거나 자바 가상 머신 규격 및 API의 일부를 택해서 정의된다. 쉽게 말해 구체적인 소프트웨어가 아니고 그 소프트웨어의 명세서(spec, specification)라고 할 수 있다. 이 명세서에 따라 java가 만들어 진다. JAVA EE(Enterprise Edition) JAVA SE에 엔터프라이즈용 여러 기능(라이브러리 등)..

JAVA 2023.01.07

2022-10-28 정렬 알고리즘 - 버블 정렬, 단순 삽입 정렬, API, greedy 알고리즘

- 정렬 알고리즘 for( 1번 for문 ) { for( 2번 for문 ) { } } * 1번 for문 : 탐색배열. 배열[]의 길이만큼 * 2번 for문 : 비교할 대상 [버블 정렬] : 이웃한 두 요소의 대소관계를 비교하고 필요에 따라 교환을 반복하는 알고리즘 package sort; public class BubbleSortTest { public static void main(String[] args) { int[] arr = {42, 32, 24, 60, 40}; for (int i = 0; i < arr.length-1; i++) { for (int j = 0; j < arr.length-1-i; j++) { //하나씩 빠져야 하기 때문에 -i System.out.println("i-"+i+"..

JAVA 2022.10.29

2022-10-27 컬렉션 프레임웍 - ArrayList, HashSet, HashMap

컬렉션 프레임웍 : 데이터 군을 저장하는 클래스들을 표준화한 설계 HashSet - Set인터페이스를 구련한 가장 대표적인 컬렉션 - Set인터페이스의 특징대로 HashSet은 중복된 요소를 저장하지 않는다(객체를 저장하기 전에 기존에 같은 객체가 있는지 확인함). - 새로운 요소 추가 => add, addAll 메소드 사용 => 중복된 요소 추가 시 false반환 package datastructure; import java.util.ArrayList; import java.util.HashSet; import java.util.Iterator; public class HashSetTest { public static void main(String[] args) { ArrayList list = new..

JAVA 2022.10.29

2022-10-25 입출력 I/O

입출력 I/O 1. 스트림 - 데이터를 운반하는데 사용되는 연결통로이다. - 단방향 통신만 가능(하나의 스트림으로 입출력 동시에 처리 불가) - 입력스트림(InputStream)과 출력스트림(OutputStream) 필요함 2. 바이트기반 스트림 (1byte) : InputStream, OutputStream - byte단위 입력을 위한 클래스의 상위클래스인 InputStream - 키보드를 입력한 문자를 읽어서 리턴 - 1byte단위로 읽기 때문에 한글을 입력하면 깨짐(한글 - 2byte) package io; import java.io.IOException; import java.io.InputStream; import java.io.PrintStream; public class InputStream..

JAVA 2022.10.28

2022-10-24 Arrays클래스, Stack / Queue, 검색 알고리즘 - 선형검색, 이진검색, 정렬 알고리즘 - 단순 선택 정렬

Arrays클래스 : 배열을 다루기 위해 만들어진 클래스 - 배열을 다루기 위한 다양한 메소드 포함 - 많은 메소드가 static메소드이다. - import java.util.Arrays; - Arrays.sort 이용하여 배열 정렬하기 import java.util.Arrays; public class ArraysTest { public static void main(String[] args) { int[] myarr = {19, 30, 89, 36, 82}; display(myarr); // 정렬 하지 않고 그대로 출력됨 // 배열의 모든 데이터를 오름차순으로 정렬, 매개변수로 정렬할 배열을 전달받음 Arrays.sort(myarr); display(myarr); // 정렬한 결과 출력됨 - Arra..

JAVA 2022.10.24