Java 관련/Java
![[Java] java.lang.String api 활용하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FenhD6f%2FbtriwHCVrUf%2FAAAAAAAAAAAAAAAAAAAAAAB01GJAV0qApGeRBIZ6KSdFA18UUn86jFW1QGjMA0QG%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DpNzFt93V57SZY8Boz6lSM5HyBiI%253D)
[Java] java.lang.String api 활용하기
https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/String.html String (Java SE 11 & JDK 11 ) Compares two strings lexicographically. The comparison is based on the Unicode value of each character in the strings. The character sequence represented by this String object is compared lexicographically to the character sequence represented by the argum docs.oracle.com 위의 링크에서 AP..
![[Java] Split() & StringTokenizer()](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbxQbX7%2FbtrivCBYyor%2FAAAAAAAAAAAAAAAAAAAAAMzOxa-hXzCAVFuCaddUk2d2Ha82VrdVm92wnxxvnodI%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Df6Nr%252FXK0E0ClpvKWsDIElfBUDhw%253D)
[Java] Split() & StringTokenizer()
우선 Spilt과 StringTokenizer의 차이점부터 보면 StringTokenizer의 경우 비어있는 데이터는 생략하고 Split은 비어있는 데이터를 null 값으로 간주한다고 합니다. 또한 StringTokenizer는 일반적으로 속도가 더 빠르며 Split은 정교한 작업을 하는데 더 유용하다고 합니다. 두 가지를 보기 전에 먼저 substring을 보겠습니다. 1.substring String str = "The String class represents character strings."; str의 문자열이 선언되어 있다고 가정했을 때 System.out.println(str.substring(4, 10)); substring은 java.lang.String에서 제공하고 있는데요. 위..
![[Java] String() & StingBuffer()](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FD5Bgf%2FbtriwxNT6yj%2FAAAAAAAAAAAAAAAAAAAAAHjzBeArPAZpUHPFZGL0KM_Ix6OLBaRrBzCTb2oVT8JP%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D5JjFYiYthzw67SFqCrycRgcjEgE%253D)
[Java] String() & StingBuffer()
우선 String은 불변성(immutable)의 특성이 있다고 말씀드렸었습니다. 이 말이 무슨 말일까요?? System.out.println(s.hashCode()); s += " 저는 "; System.out.println(s.hashCode()); s += "씨네 입니다."; System.out.println(s.hashCode()); System.out.println(s); String t = "안녕하세요. 저는 씨네 입니다"; System.out.println(s == t); System.out.println(t.hashCode()); String s = "안녕하세요."; System.out.println(s.hashCode()); s += " 저는 "; System.out.println(s...
![[Java] String pool(스프링 풀)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FoEtZS%2FbtrizylfhE4%2FAAAAAAAAAAAAAAAAAAAAAPaTn55fMM_LIKiAa8TBVwoN5uEjP8SSfveZVH9u0CR7%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DVAQlFYqtFJ6jpd5S5rPFt2rcC4Y%253D)
[Java] String pool(스프링 풀)
String은 참조 타입이지만 기본 타입처럼 쓸 수 있는 문자열이라고 다룬 적이 있습니다. 이런 문자열 String은 불변성(immutable)을 가지고 있습니다. 또 String 타입과 다른 타입을 연산하면 다른 타입도 String 타입으로 인식하게 되는데요. 이게 무슨 말인지 잠시 코드를 볼까요? String s = "Hello"; System.out.println(s + 1 + 2); System.out.println(1 + 2 + s); System.out.println(s); String h = "Hello"; System.out.println(h); System.out.println(s == h); String newS = new String("Hello"); System.out.println..
![[Java] Calendar 클래스를 이용한 달력(calendar)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbjV1Cr%2FbtriAskgkrV%2FAAAAAAAAAAAAAAAAAAAAAPz7ksnbg7z6L8r3YPJHdhCHd7F4CllOieVoKSx3i7Xj%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3D%252FXTFnt2Fexd%252BJq9GSf0mMQC10fg%253D)
[Java] Calendar 클래스를 이용한 달력(calendar)
https://docs.oracle.com/en/java/javase/11/docs/api/index.html Overview (Java SE 11 & JDK 11 ) This document is divided into two sections: Java SE The Java Platform, Standard Edition (Java SE) APIs define the core Java platform for general-purpose computing. These APIs are in modules whose names start with java. JDK The Java Development Kit (JDK) AP docs.oracle.com api 보는 곳! calendar 클래스는 jaca.ba..
![[Java] 달력(calendar) 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdCrjOh%2FbtrizyyGTPz%2FAAAAAAAAAAAAAAAAAAAAABolT7BVGww4ovMi2mtQsv7Hd4MkUDkUYYNjTeUdJDQz%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DuYtUEgqVgcin1mpJixC02onImRA%253D)
[Java] 달력(calendar) 만들기
/* * ① 서력 기원 연수가 4로 나누어 떨어지는 해는 우선 윤년으로 하고, * ② 그 중에서 100으로 나누어 떨어지는 해는 평년으로 하며, * ③ 다만 400으로 나누어 떨어지는 해는 다시 윤년으로 정하였다. */ 1. DayOfCalendar.java package com.cal01; //달력 만들기 //요일계산 -> year년 month월을 주면, year년 month월 1일의 요일 -> 요일만큼 공백 -> 7개씩 새로운 줄 public class DayOfCalendar { //윤년 계산 private static boolean isLeapYear(int year) { boolean leap = false; if((year % 4 == 0) && (year % 100 != 0) || (year..
![[Java] 인터페이스(Interface)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FrNAQI%2Fbtrh6H28hZ4%2FAAAAAAAAAAAAAAAAAAAAADfKB0JbPnKUp6KpjNVJDxwB-5YP_MOXIs2EwWsNS7W8%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DnyTIZLx8KbLRnPDfbSND7sAVCi8%253D)
[Java] 인터페이스(Interface)
1. 인터페이스란? 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미합니다. 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 수 있지만 다중 상속을 할 경우 메소드 출처의 모호성과 같이 여러 문제가 발생할 수 있게 됩니다. 이와 같은 이유로 자바에서는 클래스를 통한 다중 상속을 지원하지 않습니다. 하지만 다중 상속의 이점을 활용하기 위해 인터페이스라는 것을 통해 다중 상속을 지원하고 있습니다. 인터페이스는 위에서 일종의 추상클래스라고 했지만 추상클래스와는 분명 다른 점이 존재합니다. 자바에서 추상 클래스는 추상 메소드를 포함할 수 있지만..
![[Java] 메소드(method)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FTGnbq%2Fbtrg1J2t3v2%2FAAAAAAAAAAAAAAAAAAAAAF8HAQ06pHembTnl_dsBzTC76NUAcaZjAl752GhJWm_x%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3Dm0rEqo3%252FcnNa5t7dxIiSa2L%252BRss%253D)
[Java] 메소드(method)
자바에서 class를 구성하는 요소는 필드(field)와 메소드(method)입니다. 메소드는 기능을 위한 명령들의 집합이라고 할 수 있는데요. 메소드를 이용하여 중복되는 코드의 반복적인 프로그래밍을 피할 수 있기 때문입니다. 그렇게 되면 프로그램에 문제가 생기거나 기능을 바꿀 때에도 보다 쉽게 유지 보수가 가능하게 되겠죠? 접근제한자 메모리타입 리턴타입 메소드명(파라미터or아규먼트 -> 매개변수){ //명령 } 메소드의 선언 형태는 위와 같습니다. 대표적인 메소드로 메인메소드가 있는데요. 메인 메소드의 형태를 보면 public(접근제한자) static(메모리영역) void(리턴타입) main(메소드이름)(String[] args(파라미터)){ } 이렇게 되는데요. 접근제한자 : 해당 메소드에 접근할..
![[Java] Random()을 이용한 로또 코드(lotto code)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FG3Wes%2FbtrgXhFFf3o%2FAAAAAAAAAAAAAAAAAAAAAKlUw5-bSkYtIQnU7iODsS-zLxaFjVDnB-NjZBOUTcnw%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DMRbZOX3hlpfWAz%252FfgUzJCWKImu8%253D)
[Java] Random()을 이용한 로또 코드(lotto code)
Random()은 숫자가 랜덤으로 나오게 해주는 클래스로 Scanner()와 사용방법은 거의 비슷합니다. java.util.Random을 import 해주고 new 키워드를 사용해 객체를 생성 후 사용 가능합니다. package com.test01; import java.util.Random; public class MTest{ public static void main(String[] args) { Random rd = new Random(); System.out.println(rd.nextInt(100)); } } 해당 코드를 출력하면 0부터 99까지의 숫자 100가지를 랜덤으로 출력시킵니다. 그리고 java.lang.Math 클래스를 이용해서 랜덤 숫자를 뽑아내는 방법도 있는데요. 간단하게 알아..
![[Java] 얖은값 복사(Shallow copy), 깊은값 복사(Deep copy)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbclskS%2FbtrgU1X4svg%2FAAAAAAAAAAAAAAAAAAAAAFRJ5zgRFj0OHqz6QzKFdR9hCB53Plvi3evdhzkwmJRo%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1756652399%26allow_ip%3D%26allow_referer%3D%26signature%3DTKVc8Me%252FUqqAj1V4AoMd4u%252Fc3eM%253D)
[Java] 얖은값 복사(Shallow copy), 깊은값 복사(Deep copy)
1. 얕은 값 복사(ShallowCopy) - 주소값 복사 package com.test01; import java.util.Arrays; public class ShallowCopy { //얕은 값 복사(주소값 복사) public static void main(String[] args) { int[] original = {10, 20, 30, 40, 50}; int[] copy = original; System.out.println(Arrays.toString(original)); System.out.println(Arrays.toString(copy)); System.out.println(original); System.out.println(copy); copy[2] = 300; System.out...