IT/개발(자바, 서블릿, 스프링 등)
-
[Java] Math 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 18. 23:43
Math는 수학적 계산을 처리하는 클래스다. 필드, 메서드는 모두 static으로 선언되어있다. 따라서 'Math.변수' 또는 'Math.메서드()' 형태로 사용한다. 또한 생성자가 private 접근 제한자이므로 인스턴스를 생성할 수 없다. public class Test { public static void main(String[] args) { // 자연 로그 System.out.println(Math.E); // 2.718281828459045 // 원주율 System.out.println(Math.PI); // 3.141592653589793 // 절댓값 구하기 System.out.println(Math.abs(-12)); // 12 // 매개변수 값을 올림함 System.out.println(..
-
[Java] StringBuffer/StringBuilder 클래스IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 18. 21:54
StringBuffer와 StringBuilder도 String처럼 문자열을 처리하는 클래스다. String 클래스는 단점이 하나 있다. 바로 원본이 변경되지 않는다는 점이다. 원본 문자열이 변경되지 않으니 문자열을 수정할 때마다 메모리에 새로운 문자열이 생성되고 이전 문자열은 메모리에 남아 쓸데없는 자리만 차지하게 된다. 즉, String은 메모리 사용에 있어서 비효율적인 면이 있다. String의 단점을 보완하는 클래스가 StringBuffer와 StringBuilder다. 문자열을 처음 만들 때 넉넉한 메모리 공간을 확보해서 그 안에 문자열을 저장하고 수정한다. 문자열을 처리하기 위해 넉넉한 메모리 공간을 버퍼(buffer)라고 부른다. 버퍼에서 문자열을 수정하므로 수정할 때마다 String처럼 새..
-
[Java] 자바 기본 API(String 클래스)IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 18. 14:13
이번에는 자바 API 중에서 java.lang 패키지에 있는 기본 API 중 Object, String, StringBuffer, StringBuilder, Math 클래스에 대해 자주 사용하는 기능 위주로 살펴보겠다. Object 클래스에 이어 String 클래스에 대해 알아보겠다. 문자열 처리는 어떤 프로그램을 개발하든 필요한 기능이다. 이러한 문자열 처리 기능을 돕는 API는 String 클래스다. 자바에서 객체를 생성할 때 new 명령문으로 생성하는데, 유일하게 String 클래스만 큰따옴표로도 객체를 생성할 수 있다. 그러나 new로 생성했는지, 큰따옴표로 생성했는지에 따라 다르게 동작하는 부분이 있다. public class Test{ public static void main(String[]..
-
[Java] 자바 기본 API(Object 클래스)IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 18. 11:31
이번에는 자바 API 중에서 java.lang 패키지에 있는 기본 API 중 Object, String, StringBuffer, StringBuilder, Math 클래스에 대해 자주 사용하는 기능 위주로 살펴보겠다. 가장 먼저 Object 클래스에 대해 알아보겠다. 1. Object 클래스 Object 클래스는 모든 자바 클래스의 가장 루트에 있는 클래스다. 모든 클래스가 Object 클래스를 상속 받는다. 따라서 모든 자바 객체는 Object클래스가 포함하는 메서드들을 모두 상속받아 사용할 수 있다. 1.1 해시코드 [프로토타입] public int hashCode() 새로운 생명이 탄생하면 출생 신고를 하고 주민번호를 부여 받는다. 주민번호는 특정한 원리에 의해 생성되는데 각 자리마다 의미를 부여..
-
[Java] 자바 API 문서IT/개발(자바, 서블릿, 스프링 등) 2020. 1. 18. 10:43
API 문서 라이브러리 라이브러리의 사전적 의미는 도서관이다. 도서관은 다양한 책들이 모여있는 곳이고, 필요한 책이 있을 때마다 방문해서 꺼내어 본다. IT 분야에서 라이브러리도 비슷한 개념이다. 다양한 코드들이 모여있는 집합이고, 개발 중 필요한 기능이 있다면 라이브러리에서 얻을 수 있다. 세계에서 가장 큰 도서관인 미국의회 도서관과 같이 IT 분야의 라이브러리도 미국의회 도서관만큼이나 많다. 따라서 필요한 기능이 있을 때 라이브러리를 활용할 수 있어야 한다. 자바 API 자바도 라이브러리를 제공한다. 자바에서는 라이브러리나는 이름 대신 API(Application Programming Interface)란 용어를 사용한다. 자바 API는 자바 클래스 파일(*.class)들로 구성되어 있다. Java ..
-
[Java] interfaceIT/개발(자바, 서블릿, 스프링 등) 2019. 12. 10. 01:42
인터페이스란 여러 프로그램에서 사용할 멤버를 일관되게 하기 위한 기술 명세이다. 이렇게 기준을 정하면 사용자는 일관된 방법으로 프로그램을 사용할 수 있다. 필드 선언 실제 존재하는 객체가 아니므로 인터페이스로 객체를 생성할 수 없다. 객체를 생성할 수 없는 인터페이스에서 필드를 선언한다는 것은 객체 생성과 상관없이 사용할 수 있는 static으로 선언해야 한다는 의미이다. 인터페이스는 특이한 객체라서 별도의 선언이 없어도 컴파일할 때 필드 선언부에 다음에 세가지 제어자가 자동으로 추가된다. public static final 메서드 선언 인터페이스에서 선언하는 메서드는 실제 내용을 구현할 목적이 아니라 인터페이스 통일을 목적으로 선언하는 것이므로 본문을 구현하지 않는다. 그래서 인터페이스에서 선언하는 메..
-
[Java] 추상 메서드와 추상 클래스 개념(abstract)IT/개발(자바, 서블릿, 스프링 등) 2019. 12. 10. 01:15
추상이라는 의미는 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하는 것이다. 추상 메서드는 메서드의 이름과 매개변수, 리턴타입 등만 작성하고 구현 내용은 생략한다. 추상 메서드를 포함하는 클래스 역시 abstract 키워드를 붙여서 추상 클래스로 선언해주어야 한다. 이 클래스를 상속받은 클래스는 반드시 추상 메서드를 오버라이딩하여 메서드 본문을 구현해주어야 한다. Employee.java abstract class Employee { String name; int salary; public abstract void calcSalary(); } class Salesman extends Employee { @Override public void calcSalary() { System.out.print..
-
[Java] final 키워드 개념 정리IT/개발(자바, 서블릿, 스프링 등) 2019. 12. 9. 22:41
final 제어자는 클래스, 변수, 메서드를 선언할 때 제어자 부분에 선언할 수 있다. 1. final 변수 초깃값을 변경하지 않고 그대로 사용하기 위해 파이(원주율)와 같은 수학적 값을 사용하기 위해 주민번호, 학번과 같은 유일한 값을 사용하기 위해 final로 선언된 변수는 값을 수정할 수 없으므로 인스턴스 생성 시 반드시 초기화 작업을 해주어야 한다. 변수 선언과 동시에 초깃값을 지정해주면 된다. 또는 생성자를 통해서 초기화할 수도 있다. 클래스는 인스턴스가 생성된 후 사용할 수 있으므로 생성자에서 초기화하면 된다. final 변수의 이름은 대문자로 지정하는 것이 관례이다. 2. final 메서드 메서드를 선언할 때 final 키워드를 사용하면 메서드를 오버라이딩할 수 없도록 제한한다. 즉, fin..