일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 쿼리스트링#쿼리문자열#바인딩
- 국비지원JAVA#국비지원자바#프로그랭#JSP#국비지원JSP#국비교육JSP#웹개발자#코딩
- 국비지원JAVA
- 자바
- Java#정처기#비트연산자#정보처리기사
- 국비지원자바#국비교육자바#국비지원java#국비교육java#자바스크립트#프론트엔드
- 항해플러스#항해#항해플러스3기#회고
- Java#JAVA#매개변수
- 프로그래밍
- Java#java#자바#다오#디티오#브이오#dao#dto#vo
- db#데이터베이스#오라클#sql
- tibero#티베로#이중화#failvover
- Java#컴파일러#자바컴파일러#
- java
- 국비지원JAVA#국비교육JAVA#국비지원자바#국비교육자바#JSP#SERVLET#서블릿#
- Spring#spring#스프링#스프링프레임워크#스프링자동주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- 개발자도서#개발자책#도메인#DDD#도메인주도개발시작하기#개발스터디#
- 항해99 #항해플러스 #주니어개발자 #주니어개발자역량강화 #주니어개발자멘토링 #개발자사이드프로젝트 #코딩부트캠프 #코딩부트캠프후기
- Resource #
- Spring#spring#스프링#스프링프레임워크#스프링의존성주입#스프링생성자#스프링기본#국비지원#국비교육#국비지원스프링
- #
- spring#Spring#RequestBody#ResponseBody
- html#HTML#프론트엔드#개발자#코딩#국비지원#국비교육#국비지원프론트엔드#국비지원HTML#국비지원html#국비프론트엔드
- 국비지원#국비교육
- Java#java#메모리영역#클래스로더#가비지컬렉터
- 개발자#it도서#도메인#DDD#ddd
- 국비지원#국비교육#국비지원자바#국비교육자바#css#HTML#JAVA
- #java#JAVA#프로그래밍#웹개발자
- 자바#Java#배열예시#연습#기초다지기
- IntelliJ#인텔리제이#인텔리#단축키
- Today
- Total
개린이 개발노트
[Java 10] 자바 var (feat. 지역변수) 본문
1. var
var i = 1; // int로 추론
var str = "Java"; // String으로 추론
var list = new ArrayList<String>(); // ArrayList<String>으로 추론
var는 지역변수를 선언할 때 초기값을 통하여 데이터 타입을 추론합니다.
int var = 1; // 식별자로 사용 가능
var는 예약된 타입 이름으로 키워드가 아니기 때문에 식별자로 사용할 수 있습니다
2. 사용 예제
// 기존 코드
Map<String, List<String>> countryToCity = new HashMap<>();
// ...
for (Map.Entry<String, List<String>> citiesInCountry : countryToCity.entrySet()) {
List<String> cities = citiesInCountry.getValue();
// ...
}
기존 코드↑
// var를 사용한 코드
var countryToCity = new HashMap<String, List<String>>();
// ...
for (var citiesInCountry : countryToCity.entrySet()) { // for each문에서 사용 가능
var cities = citiesInCountry.getValue();
// ...
}
var를 사용한 코드↑
var를 사용하면 위와 같이 코드 양을 줄일 수 있습니다.
var는 for each문에서도 사용할 수 있으며, C++의 auto와 비슷하게 사용 가능합니다.
Object productInfo = new Object() {
String name = "Apple";
int total = 30;
};
System.out.println("name = " + productInfo.name + ", total = " + productInfo.total);
↑ 익명 클래스를 만드는 경우 필드를 추가할 수 있지만, 다른 곳에서 해당 필드를 참조할 수 없으므로, 위의 코드는 5번 라인에서 에러를 발생시킵니다.
하지만, 위의 코드에서 맨 처음 Object를 var로 바꾸면 익명 클래스에 선언된 필드를 사용할 수 있으므로 에러가 나지 않습니다.
3. 주의해야 할 점****
public class VarDemo {
// var a = 1; // var는 지역변수에서만 사용 가능
public static void main(String[] args) {
// var x = 1, y = 2; // ,와 함께 사용 불가능
// var str = null; // null은 String에서만 사용할 수 있는 것이 아니므로 타입 추론 불가능
// var err; // var를 사용할 때는 초기화를 바로 해야 함 (타입 추론이 불가능하므로)
// err = 1;
// var l = () -> {} // 람다식에서 사용 불가능
}
// void test(var x) {} // 메소드의 인수타입은 지역변수여도 var 사용 불가
}
public class VarDemo {
// var a = 1; // var는 지역변수에서만 사용 가능
public static void main(String[] args) {
// var x = 1, y = 2; // ,와 함께 사용 불가능
// var str = null; // null은 String에서만 사용할 수 있는 것이 아니므로 타입 추론 불가능
// var err; // var를 사용할 때는 초기화를 바로 해야 함 (타입 추론이 불가능하므로)
// err = 1;
// var l = () -> {} // 람다식에서 사용 불가능
}
// void test(var x) {} // 메소드의 인수타입은 지역변수여도 var 사용 불가
}
[JAVA] 변수종류 ( 지역변수, 전역변수, 클래스변수, 인스턴스변수 ) (tistory.com)
지역변수 참조 ↓
'개린이 개발자 독학노트' 카테고리의 다른 글
자바로 고객이 물품을 주문하는 코드 완성하기 (Feat. 미완성, 수정중) (0) | 2022.12.10 |
---|---|
형상관리 툴(CVS, SVN, Git) (0) | 2022.12.09 |
자바 상속(feat.생활코딩) (0) | 2022.12.01 |
자바 기본 2 (0) | 2022.11.30 |
객체지향 개념(참조변수의 형변환) (0) | 2022.11.29 |