본문 바로가기

JAVA20

[File] 파일의 파일명/확장자만 구하기 import org.apache.commons.io.FilenameUtils; * 예제 - fileName.zip 1. 파일명 구하기FilenameUtils.getBaseName(file.getName())// fileName  2. 확장자 구하기FilenameUtils.getExtension(file.getName())// .zip 2024. 5. 23.
Java란 어떤 언어일까? Java Java는 썬 마이크로시스템즈의 제임스 고슬링(James Gosling)과 다른 연구원들이 개발한 객체 지향적 프로그래밍 언어이다. 기본 자료형을 제외한 모든 요소들이 객체로 표현되고, 객체 지향 개념의 특징인 캡슐화, 상속, 다형성이 잘 적용된 언어이다. Java의 가장 큰 특징은 플랫폼에 독립적인 언어라는 점이다. 소스 코드를 기계어로 직접 컴파일하여 링크하는 C/C++의 컴파일러와 달리 자바 컴파일러는 바이트코드인 클래스 파일(.class)을 생성하고, 이 파일의 바이트코드를 읽은 뒤 기계어로 바꾸어 실행하는 것은 JVM(자바 가상 머신)이다. 장점 JVM(자바가상머신) 위에서 동작하기 때문에 운영체제에 독립적이다. GabageCollector를 통한 자동적인 메모리 관리가 가능하다. 단점.. 2023. 2. 23.
[ JAVA ]접근제어자(Access modifier)란? 접근제어자 : 접근지정자라고도 부르며 접근제어자를 설정하여 외부에서 클래스, 메소드, 멤버변수, 생성자에 접근하지 못하도록 제어하는 역할을 한다. - 접근제어자를 사용하는 이유 : 외부에서 수정하지 못하도록 막아 안전하게 보호할 수 있다. - 접근제어자의 종류 : public, default, protected, private 접근제어자를 아무것도 제시하지 않은 경우 default로 지정되며, default는 생략이 가능하다. - 접근 권한 : public > protected > default > private public : 제한없이 어떤 클래스에서도 접근이 가능하다. protected : 해당 패키지의 클래스와 다른 패키지의 자식클래스에서 접근이 가능하다. default : 해당 패키지의 클래스에서.. 2023. 1. 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에 엔터프라이즈용 여러 기능(라이브러리 등).. 2023. 1. 7.
2022-10-31 greedy알고리즘, 재귀알고리즘 2022. 11. 1.
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+".. 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.. 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.. 2022. 10. 28.
2022-10-24 *배열로 스택클래스 구현하기 [StackTest.java] import java.util.Scanner; class MyStack { private int[] mystack; private int size;// 스택의 사이즈 private int top; public MyStack(int length) { // this.size = size; mystack = new int[length]; } public void push(int data) { mystack[size] = data; size++; } public int empty() { int result = 0; if (size == 0) { result = 1; } return result; } public int pop() { if (empty() == 1) { return .. 2022. 10. 24.