묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
필드 주입
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]다른 필드 주입 관련 게시글을 다 보고 왔는데 제가 이해한 것이 맞는지 모르겠습니다. 강의에서 나온 코드를 보면 nullpointexception이 발생한다고 했는데 생각하기엔 그렇구나 하는데 뭔가 완벽히 이해가 안갑니다. 그리고 외부에서 변경이 불가능 하다고 했는데 생성자 주입에서 변경이 불가능 한 것과는 다른 건가요?
-
미해결김영한의 실전 자바 - 기본편
인스턴스 메서드의 인스턴스 소속
'인스턴스 메서드가 인스턴스에 소속되어 있다'는 부분이 잘 이해가 되지 않아 질문드립니다.이전 강의에서 메서드는 힙 영역이 아닌 메서드 영역에 존재한다고 배웠습니다. ClassA라는 클래스가 존재하고 해당 타입 인스턴스를 2개 만들었다고 가정해보겠습니다. 그리고 참조변수를 통해 인스턴스에 존재하는 인스턴스 메서드를 호출하게 되면, 메서드 영역에 존재하는 동일한 메서드 코드가 호출됩니다. 이 부분이 '인스턴스 메서드는 인스턴스에 소속'이라는 부분과 충돌되는 것처럼 느껴지는데요.여기에서 말하는 '소속'이 물리적으로 메모리 상 같은 영역에 소속되어 있다는 뜻이 아니라, 인스턴스를 생성해야 인스턴스 메서드를 사용할 수 있기 때문에 인스턴스에 소속되어 있다고 하신걸까요...??
-
미해결김영한의 실전 자바 - 기본편
서버와 클라이언트
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]자동차가 서버, 드라이버가 클라이언트인걸까요? 웹서버와 클라이언트(브라우저)와는 아예 다른 개념인걸까요? 헷갈립니다 ㅠㅠ
-
해결됨진짜! 자바스크립트(Javascript) - 기초부터 고급까지
var 변수의 문제점 설명하실 때 질문 있습니다.
function testShadowing() { let x = 5; if (true) { let x = 10; console.log(x); } console.log(x); } testShadowing()위와 같이 let으로 x 변수를 2번 할당했는데, 실제 메모리에는 어떻게 할당이 되나요?블록 스코프라고 하더라도 함수 스코프 안에서 블록 스코프가 만들어 질 것으로 생각이 되는데(뇌피셜입니다.), 이미 함수 스코프에서 x라는 변수명을 사용하고 있어서 블록 스코프에서 x는 자바 스크립트 엔진에서 어떻게 받아들이고 실제 메모리에 어떤 식으로 메모리 할당을 하는지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
추상메서드가 존재하지 않는 추상클래스
추상메서드가 존재하지 않는 추상클래스가 존재하는 것이 일반적인 상황은 아닌거죠?오직 자식 클래스에게 속성이나 기능을 제공할 목적으로 어떤 클래스를 만들었기에 해당 클래스는 인스턴스를 생성할 필요가 없다고 판단되는 경우, 추상클래스로 선언할 수 있겠다고 생각됩니다. 그렇다면 해당 추상클래스는 추상메서드가 단 1개도 존재하지 않는 것인데요. 이게 문법적으로는 오류가 없다는 것은 알겠지만 이러한 상황이 실무에서 발생하는 상황인지 알고 싶습니다.
-
미해결김영한의 실전 자바 - 기본편
부모 자식 타입
Parent poly= new Child() ;Child child = poly ; 가 자식이 부모를 담을 수 없어서 안된다고 하셨는데, 혹시 논리적으로 왜 그런지 알 수 있을까요? 왜냐하면 제 생각에는 결국에는 Child child = new Child(); 로 되어서 가능한거 아닌가요 ? 혹시 안되는 이유가 이미 parent poly 는 화살표가 parent 클래스를 향하고 있기 떄문에 아무리 참조값 안에 Child , Parent class 둘다 있어도 Child child = poly ; 할때 Child 가 parent 인스턴스를 우선 참조해서 오류가 발생하는건가요 ? 도무지 Child child = new Child () ; 는 가능한데Parent poly = new Child() ;Child child =poly(new Child) ; 가 안되는 이유를 모르겠습니다
-
미해결김영한의 실전 자바 - 기본편
cmd + O Override Method 기능 사용중에..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 선생님은 직접 extends/implements 키워드 뒤에 쓴 클래스나 인터페이스만 뜨던데 Object가 같이 뜹니다. Object는 안 뜨게 하는 방법 없을까요??
-
미해결김영한의 실전 자바 - 중급 1편
return을 객체로 할 때 질문입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 항상 강의 잘 보고 있습니다! 수강 중에 궁금한 것이 생겨 질문 남깁니다.return타입이 MyInteger타입으로 했는데 출력으로는 참조값이 아닌 String형으로 나온 건지 이해가 잘 되지 않습니다..어떻게 toString()이 호출된 적도 없는데 실행 결과가 아래처럼 나오는 건지 잘 모르겠습니다.혹시 System.out.println() 때문에 내부에서 toString을 호출해서 출력이 아래처럼 나온건가요? ?
-
미해결스프링 핵심 원리 - 기본편
구현체가 런타임에서 달라져야 하는 경우의 의존성 주입
1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]요청의 타입에 따라 A요청은 ServiceA, B요청은 ServiceB등으로 런타임에서 구현체가 선택되어야 하는 경우에는 어떻게 해야할까요?예를 들어 주문 제휴사와 배달 대행사를 중계하는 서비스를 만들 때,배달 대행사의 배달 상태 변경 콜백을 주문 제휴사로 다시 콜백 API를 호출해야 하는데, 주문 제휴사 마다 특정한 동작이 필요해 구현체가 달라지는 경우 (ex. URL 차이, 필드값 차이 등) 어떻게 구현하는것이 옳은 방향일까요?
-
미해결김영한의 실전 자바 - 기본편
인터페이스 멤버변수 final 질문
인터페이스에서 제공하는 멤버변수에서 final이 붙는 이유가 궁금합니다. static의 경우, 인터페이스를 인스턴스화할 수 없기 때문에 애초에 인터페이스 차원에서 인스턴스 변수를 제공하지 않는다고 이해하였는데 final은 그 이유를 잘 모르겠습니다.
-
미해결김영한의 실전 자바 - 기본편
참조형과 메서드 호출질문있습니다.
참조형과 메서드 호출 - 활용 10분 20초에 null은 왜나오는건가요?
-
미해결김영한의 실전 자바 - 기본편
인텔리제이 오류
클래스 실행시에 간헐적으로 오류가 발생하네요.빌드를 10번하면 7번정도 오류가 발생하는것 같아요. 포트를 이미 사용중이라는 것 같은데... 인터넷에 쳐봐도 해결방법이 안나오네요...혹시 해결법 아시는분 계실까요?? Abnormal build process termination: C:\Users\박정찬\.jdks\openjdk-21.0.1\bin\java.exe -Xmx700m -Djava.awt.headless=true "-Djna.boot.library.path=C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.3/lib/jna/amd64" -Djna.nosys=true -Djna.noclasspath=true --add-opens jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED --add-opens jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED "-Dpreload.project.path=C:/Users/박정찬/Desktop/인터넷 강의 자료/자바 김영한/java-basic" -Dpreload.config.path=C:/Users/박정찬/AppData/Roaming/JetBrains/IntelliJIdea2023.1/options -Dcompile.parallel=false -Drebuild.on.dependency.change=true -Didea.IntToIntBtree.page.size=32768 -Djdt.compiler.useSingleThread=true -Daether.connector.resumeDownloads=false -Dio.netty.initialSeedUniquifier=1929828927587536610 -Dfile.encoding=x-windows-949 -Duser.language=ko -Duser.country=KR -Didea.paths.selector=IntelliJIdea2023.1 "-Didea.home.path=C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3" -Didea.config.path=C:/Users/박정찬/AppData/Roaming/JetBrains/IntelliJIdea2023.1 -Didea.plugins.path=C:/Users/박정찬/AppData/Roaming/JetBrains/IntelliJIdea2023.1/plugins -Djps.log.dir=C:/Users/박정찬/AppData/Local/JetBrains/IntelliJIdea2023.1/log/build-log "-Djps.fallback.jdk.home=C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/jbr" -Djps.fallback.jdk.version=17.0.7 -Dio.netty.noUnsafe=true -Djava.io.tmpdir=C:/Users/박정찬/AppData/Local/JetBrains/IntelliJIdea2023.1/compile-server/java-basic_51dbb69c/_temp_ -Djps.backward.ref.index.builder=true -Dtmh.instrument.annotations=true -Dtmh.generate.line.numbers=true "-Djps.kotlin.home=C:\Program Files\JetBrains\IntelliJ IDEA 2023.1.3\plugins\Kotlin\kotlinc" -Dkotlin.incremental.compilation=true -Dkotlin.incremental.compilation.js=true -Dkotlin.daemon.enabled -Dkotlin.daemon.client.alive.path=\"C:\Users\박정찬\AppData\Local\Temp\kotlin-idea-10692411316084801441-is-running\" -Dide.propagate.context=false -classpath "C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-launcher.jar" org.jetbrains.jps.cmdline.Launcher "C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-builders.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-builders-6.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-javac-extension.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util-8.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util_rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/annotations.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/3rd-party-rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/protobuf.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/jps-model.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/javac2.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/forms_rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/aether-dependency-resolver.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/idea_rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/JavaEE/lib/jasper-v2-rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/Kotlin/lib/jps/kotlin-jps-plugin.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/lib/util.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/eclipse/lib/eclipse-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/eclipse/lib/eclipse-common.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/ant/lib/ant-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/JavaEE/lib/javaee-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/uiDesigner/lib/jps/java-guiForms-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/space/lib/space-java-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/devkit/lib/devkit-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/platform-langInjection/lib/java-langInjection-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/javaFX/lib/javaFX-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/javaFX/lib/javaFX-common.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/Groovy/lib/groovy-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/Groovy/lib/groovy-constants-rt.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/maven/lib/maven-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/gradle-java/lib/gradle-jps.jar;C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/JPA/lib/jps/javaee-jpa-jps.jar" org.jetbrains.jps.cmdline.BuildMain 127.0.0.1 49155 24ad3385-4fa5-4cd4-9376-31335102b646 C:/Users/박정찬/AppData/Local/JetBrains/IntelliJIdea2023.1/compile-serverBe careful, logger will be shut down earlier than application: Unable to make field private static java.util.IdentityHashMap java.lang.ApplicationShutdownHooks.hooks accessible: module java.base does not "opens java.lang" to unnamed module @2f4d3709Build process started. Classpath: C:/Program Files/JetBrains/IntelliJ IDEA 2023.1.3/plugins/java/lib/jps-launcher.jarError connecting to 127.0.0.1:49155; reason: Address already in use: no further information: /127.0.0.1:49155io.netty.channel.AbstractChannel$AnnotatedSocketException: Address already in use: no further information: /127.0.0.1:49155Caused by: java.net.BindException: Address already in use: no further information at java.base/sun.nio.ch.Net.pollConnect(Native Method) at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:682) at java.base/sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:973) at io.netty.channel.socket.nio.NioSocketChannel.doFinishConnect(NioSocketChannel.java:337) at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.finishConnect(AbstractNioChannel.java:334) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:776) at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:689) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:652) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) at java.base/java.lang.Thread.run(Thread.java:1583)Exiting.
-
미해결김영한의 실전 자바 - 중급 1편
Wrapper 클래스는 static 클래스인건가요?
강의 중간에 보면 Integer.valueOf(10) 이런식으로 바로 사용이 가능하던데그렇다면 Integer는 static 클래스여야하지 않나 싶었습니다근데 Integer 클래스로 올라가니 이렇게 나오는데, static클래스가 아닌건가요?
-
미해결자바 기초부터 마스터하기 with 은종쌤 (Do it 자바 프로그래밍 입문) - Part 1(기초편)
구현과 오버라이딩
추상 클래스 내의 추상 메서드가 하위 클래스가 구현해야 하는 메서드라는 것은 { } 이렇게 중괄호까지만 표기가 되어도 되는 건가요?구현은 구현부 { } 표기가 된 것이고 오버라이딩은 구현부 내에 코드가 있던 것을 다시 재정의 할 때를 말하는 건가요?추상클래스의 바로 아래 하위 클래스에서 추상 메서드는 구현만 가능하고 오버라이딩 되는 것은 아닌건가요?
-
미해결김영한의 실전 자바 - 기본편
1강 문제풀이 질문입니다.
강의 클래스와 데이터 문제풀이 6분 45초에서 아래와 같이 작성하면 productName에서 빨간 줄이 나오는데 객체를 생성을 안하고 바로 객체 배열에 접근해서 그러는건가요?package ex1;public class ProductOrderMain { public static void main(String[] args) { ProductOrder[] orders= new ProductOrder[3]; ProductOrder order1= new ProductOrder(); orders.productName="두부"; }}
-
미해결스프링 핵심 원리 - 기본편
isInstanceOf
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]assertThat(memberRepository).isInstanceOf(MemberRepository.class);"인터페이스가 구현 클래스의 인스턴스면 성공" 인데 이게 무슨 말인지 잘 이해가 가지 않습니다.
-
미해결김영한의 실전 자바 - 기본편
강의:클래스가 필요한 이유 (9분11초)에대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요.for 문 (studentNames.length) 부분에 studenAges 또는 studentGrade를 넣어도 결과 값은 똑같이 나오는데 맞는 코딩인가요?코린이라서 이런 식으로 질문하는 게 맞는지 모르겠네요답변 주시면 감사하겠습니다!
-
미해결스프링 핵심 원리 - 기본편
localhost 8080
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]구글드라이브https://drive.google.com/file/d/18wTrlbj52ce_TvtqyIKrY_tbfeHwuFnS/view?usp=sharing저는 아래와 같은 오류가 발생하며 localhost 8080에 연결이 되지 않습니다.
-
미해결김영한의 실전 자바 - 기본편
생성자 호출 시 볼륨이 100을 초과하는 경우
[질문 내용]생성자에서는 100초과의 경우를 따로 생각하지 않은 것으로 보입니다. 그렇다면 생성자를 호출할 때 파라미터로 200을 넣는 경우는 방지할 수 없는데요. (아직 다음 강의를 수강하지 않은 상태입니다. 혹시 해결 방법이 다음 강의에 있다면 알려주세요!)이런 경우 저는 다음과 같이 제어하는 방향을 생각했습니다.public Speaker(int volume){ if(volume > 100){ // 100을 초과할 수 없다고 경고하기 // volume을 최대 음량인 100으로 설정하기 System.out.println("음량은 최대 100을 넘길 수 없습니다.") System.out.println("음량을 최대 음량인 100으로 설정합니다.") this.volume = volume; } else{ this.volume = volume; } 혹시 현업에서는 어떤 방식으로 이를 제어하는지 궁금합니다.
-
미해결김영한의 실전 자바 - 기본편
다운캐스팅에 관하여 질문 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 혼자서 공부를 하다가 다운캐스팅 주의점에 관하여 궁금한점이 생겨서 질문드립니다. 사진처럼 코드를 작성하니 ClassCastException이 발생하고 1이아닌 "a" 처럼 문자열을 넣으면 발생하지 않더라고요제가 어렵게 생각을 하는건지 모르겠는데 직접 정의한 클래스들로 다운캐스팅을 설명해주실때는 인스턴스의 참조값이 메모리상에 생성이 되고 없는 인스턴스로 다운캐스팅하려하면 런타임오류가 난다이런식으로 이해가 가는데 사진처럼 자바에 내장되어있는 Object나 String클래스로 저렇게 다운캐스팅할때는 어떤식으로 ClassCastException이 발생하는지 모르겠습니다. 저 코드에서 b에대한 참조값이 생성이 되는건가요?b에 int형이 들어오든 String타입이 들어오든 b는 Object타입인건가요? 2질문이 yes라면 왜 b에 대입한 타입에따라 결과가 바뀌는지 모르겠습니다.