티스토리 뷰

공부와개발사이/Java

짬날때 자바 (1)

/daydreamer 2022. 2. 15. 10:00

 

 

* 위키독스의 점프 투 자바를 참고했음 
https://wikidocs.net/book/31

 

점프 투 자바

**초보 프로그래머를 위한 자바 입문서** 이 책은 문법위주의 지식보다는 이해중심의 지식을 전달하는 것을 주 목적으로 한다. 예를 들어 자바에서 잘 파악하기 힘든 개념 ...

wikidocs.net

 

 

개발에서 손 놓은지가 너무 오래되었기 때문에...
구냥 정리개념으로 책을 다시 한번 보려고 한다 시간날때마다 조금씩 봐야지

 

 

문자열 (String)
 
원시자료형
int / long / float / boolean 등 new 키워드로 객체 생성 불가
 
원시자료형의 Wrapper 클래스
int Integer
long Long
double Double
float Float
boolean Boolean
char Char
 
ArrayList/HashMap/HashSet  등은 데이터 저장시 원시자료형 대신
그에 대응하는 Wrapper 클래스들을 사용하여야 한다
Wrapper 클래스를 사용하면 값 대신 객체를 주고 받을 수 잇엇
코드를 객체 중심적으로 작성하는데 유리하다
멀티스레딩 환경에서 동기화를 지원하기 위해서는 Wrapper클래스가 필요하다
 
 
문자열 내장 메소드
A.equals(B) 문자열이 동일한지 비교하여 결과 값 리턴 T/F
 
String a = "hello";
String b = new String("hello");
System.out.printnln(a.equals(b)); //T
System.out.printnln(a==b);//F
 
== 연산자는 자료형이 동일한 객체인지 판별할 때 사용하는 연산자이다
a와 b의 값은 같지만 서로 다른 객체이다
 
 
indexOf()
문자열에서 특정 문자가 시작되는 위치(인덱스)를 리턴
 
String a = "Hello Java"
Java 라는 문자열이 시작되는 위치를 알고싶은 경우 사용
 
a.indexOf("Java")
system.out.println(a.indexOf("Java")); //6
뛰어쓰기 포함 7번째문자인데 숫자를 0부터 세기 때문에 6이 나옴
 
 
contains
문자열에서 특정 문자열이 포함되어 있는지의 여부
 
String a = "Hello Java";
System.out.printnln(a.contains("Java")); //T
 
 
CharAt
문자열에서 특정 위치의 문자를 리턴
String a = "Hello Java";
System.out.printnln(a.charAt(6)) //J 출력
 
 
replaceAll
문자열 중 특정 문자열을 다른 문자열로 바꾸고자 할때
String a = "Hello Java";
System.out.printnln(a.replaceAll("java", "World"));  //Hello World
 
 
Substring
문자열 자르기
String a = "Hello Java";
System.out.printnln(a.substring(0,4)) //Hell출력
substring(시작위치) =>시작위치부터 끝까지 문자열 자르기
substring(시작위치, 끝위치) = > 끝위치는 미포함
 
 
toUpperCase() 문자열 모두 대문자 변경
toLowerCase() 문자열 모두 소문자 변경
 
 
split
문자열 특정 구분자로 분리하는 메서드
String a = "a:b:c:d";
String[]  result = a.split(":"); // result ={"a","b","c","d"};
 
 
 
StringBuffer
문자열을 추가하거나 변경할 때 주로 사용하는 자료형
 
append() 문자열을 StringBuffer 객체에 추가
insert() 문자열 특정위치에 삽입
 
 
배열(Array)
자료형의 집합
배열의 길이는 고정되어 있다
String[] weeks = new String[7];
String[] weeks = new String[]; //error
 
weeks.length(); 길이의 숫자값
 
 
리스트(List)
리스트와 배열의 차이는 크기가 정해져 있지 않고 동적으로 변함
 
ArrayList
 
ArrayList pitches = new ArrayList();
 
삽입
pitches.add("133");
pitches.add("146");
 
pitches.add(0, "132");
 
출력
System.out.println(pitches.get(1));
 
ArrayList 의 갯수 리턴
pitches.size());
 
contains 리스트 안에 해당 항목이 있는지를 판별하여 결과를 boolean으로 리턴
pitches.contains("142");
 
 
삭제
remove(객체)
remove(인덱스)
 
remove(객체)
: 리스트에서 객체에 해당되는 항목을 삭제하고 삭제한 결과(T/F)리턴
System.out.println(pitches.remove("129")); //True
 
remove(인덱스)
: 해당 인덱스의 항목을 삭제하고 삭제 항목을 리턴
System.out.println(pitches.remove(0)); //138
 
 
제네릭스
ArrayList<String> pitches = new ArrayList<>();
자료형 명시 하는것
 
 
String.join
문자열 리스트를 하나의 문자열로 만듬
 
String[] pitches = new String[]{"138", "129", "142"};
       String result = String.join("," ,  pitches);
        System.out.println(result);   // 138,129,142 출력
 
 
sort 리스트 정렬
pitches.sort(Comparator.naturalOrder());
 
  • 오름차순(순방향) 정렬 - Comparator.naturalOrder()
  • 내림차순(역방향) 정렬 - Comparator.reverseOrder()
 
 
 
 
맵(Map)
Key와 Value를 한쌍으로 갖는 자료형
 
Map과 Hashmap의 차이점
 
 
값 입력
map.put("key", "value");
 
값 출력
map.get("key"); //value 출력
 
값 검색
map.containsKey("people");
 
값 삭제
map.remove("people");
 
map 갯수
map.size();
 
keySet  리턴
map의 key값을 모두 리턴
 
map.keySet()
= [baseball, people ] -> 이런식으로 Set 자료형으로 리턴
--> 배열과 비슷
-> List 자료형으로 바꿔서 사용가능
List<String> keyList = new ArrayList<>(map.keySet());
 
 
LinkedHashMap 입력된 순서대로 데이터를 저장
TreeMap 입력된 key의 오름차순 순서대로 데이터를 저장
 
 
집합(Set)
HashSet <String> set = new HashSet<>(Arrays.asList("H","e","l","l","o");
 
# 중복을 허용하지 않음
#순서가 없음
=> 인덱싱이 없음 / 중복제거를 위해 사용
 
 
상수집합(Enum)
enum CoffeeType{
Americano,
Ice_americano,
Cafe_latte
}
=> 숫자 상수 파라미터 1 / 2 을 쓰는것 보다 가독성 좋음
 
형변환과 final
형변환
문자열 -> 정수 : int a = Integer.parseInt(num);
정수 -> 문자열
: String num = "" + n;
String.valueOf(n);
Integer.toString(n);
 
final
자료형에 값을 한번만 설정할 수 있게 강제하는 키워드
=> 값을 더하거나 빼는것은 가능하다 재할당이 안됨
 
final int n = 123;
n = 456; <-에러
 
final ArrayList<String>  a = new ArrayList<>(Arrays.asList("a","b"));
a = new ArrayList<>(Arrays.asList("c","d")); <-에러
 
 
제어문
 
!= 같지않다
 
  • x || y - x와 y 둘 중 적어도 하나가 참이면 참이다
  • x && y - x와 y 모두 참이어야 참이다
  • !x - x가 거짓이면 참이다
 
 
for each : 1스탭씩 순차적으로 반복할때 (반복회수 명시적 X)
for(type var : iterate){
boby-of-loop
}
 
for( int mark : marks){
result += mark;
}
float average = (float) total / marks.length;
 
 
 
 

'공부와개발사이 > Java' 카테고리의 다른 글

짬날때 자바(3)  (0) 2022.02.28
짬날때 자바(2)  (0) 2022.02.22
댓글