묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨김영한의 실전 자바 - 중급 1편
String은 불변 객체라고 하셨는데
[String 클래스 - 문제와 풀이2 - 문제7] 과 관련된 질문입니다.이전 강의에서 String은 불변 객체라고 하셨는데요,그렇다면 사진과 같이 코드를 작성을 했을 때 출력값이 trim()을 호출하기 전의 값이 되어야 할 것 같은데실행을 해보면 trim()을 호출한 이후의 값이 출력이 됩니다.제가 어떤 부분을 잘못 이해하고 있는 걸까요??
-
미해결김영한의 실전 자바 - 기본편
데이터타입 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 선생님께서는 데이터타입을 void로 하시는데 그 이유는 무엇인가요? 제가 작성한 것처럼 int로 하고 return해도 클린코드가 되나요? 2. void를 쓰면 return을 쓰지 않아도(balance를 반환해주지않아도) AccountMain 클래스에 balance 값이 업데이트 되는 이유는 무엇인가요?
-
미해결김영한의 실전 자바 - 중급 1편
열거형 생성자 질문
왜 public 에 빨간색 에러 표시가 뜨는건가요?
-
미해결김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
유틸 클래스에 대해..
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]여기에 질문 내용을 남겨주세요.로거 만들기에서 로거 클래스 생성할때 abstract 키워드를 추가해서 추상 클래스로 만들었는데, 그 이유가 클래스 내에 static 메서드만 있으니, 굳이 인스턴스로 만들 필요가 없어서 그런건가요??그러면 추상 클래스 말고, 일반 클래스로 만들고 기본 생성자를 private으로 해서 인스턴스화 하지 못하도록 하는 건 어떤가요?
-
미해결김영한의 실전 자바 - 기본편
클래스와 데이터_상품 주문 시스템 개발 질문
package class1.ex;public class ProductOrderMain { public static void main(String[] args) { ProductOrder[] orders = new ProductOrder[3];** //for (ProductOrder o : orders) //o = new ProductOrder(); orders[0] = new ProductOrder(); orders[1] = new ProductOrder(); orders[2] = new ProductOrder();** orders[0].productName = "두부"; orders[0].price = 2000; orders[0].quantity = 2; orders[1].productName = "김치"; orders[1].price = 5000; orders[1].quantity = 1; orders[2].productName = "콜라"; orders[2].price = 1500; orders[2].quantity = 2; int sum = 0; for (ProductOrder o : orders) { System.out.println("상품명: " + o.productName + " 가격: " + o.price + " 수량: " + o.quantity); sum += o.price * o.quantity; } System.out.println("총 결제 금액: " + sum); }}왜 주석으로 할당을 대체하면 오류가 발생할까요?Q_1. 혹시 자바는 new memory allocation에서 반드시 null을 저장한 후 반환하나요?Q_2. 그렇다면 iter는 할당 여부와 관계 없이 null이 아닌 element만 traverse하나요?
-
미해결김영한의 실전 자바 - 중급 1편
지역클래스 - 지역 변수 캡처2
package nested.local; import java.lang.reflect.Field; public class LocalOuterV3 { private int outInstanceVar = 3; public Printer process(int paramVar) { int localVar = 1; //지역 변수는 스택 프레임이 종료되는 순간 함께 제거된다. class LocalPrinter implements Printer{ int value = 0; @Override public void print() { System.out.println("value = " + value); //인스턴스는 지역 변수보다 더 오래 살아남는다. System.out.println("localVar = " + localVar); System.out.println("paramVar = " + paramVar); System.out.println("outInstanceVar = " + outInstanceVar); } } LocalPrinter printer = new LocalPrinter(); //printer.print();를 여기서 실행하지 않고 Printer 인스턴스만 반환한다. return printer; } public static void main(String[] args) { LocalOuterV3 localOuter = new LocalOuterV3(); Printer printer = localOuter.process(2); //printer.print()를 나중에 실행한다. process()의 스택 프레임이 사라진 이후에 실행 printer.print(); //추가 System.out.println("필드 확인"); Field[] fields = printer.getClass().getDeclaredFields(); for (Field field : fields) { System.out.println("field = " + field); } } } 안녕하세요 이 부분에서 막혀서 이 강의만 3번째 듣는데도 이해가 안가서 기본편의 섹션 7 자바 메모리 구조와 static쪽을 다시 보고 오려는데 그것 말고 위의 코드를 이해하는데 더 필요한 내용이 있을까요?
-
미해결스프링 핵심 원리 - 기본편
Provider 작동 방식
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]https://www.inflearn.com/questions/1198720/autowired%EB%A5%BC-%EC%93%B4-%EC%9D%B4%EC%9C%A0해당 링크를 보면 @Autowired가 PrototypeBean을 주입 받는다고 답변 주셨는데 PrototypeBean은 단지 타입 인자를 지정해줬을 뿐이고, 주입 받는건 ObjectProvider 아닌가요??@lazy를 사용한 지연 생성 빈이나 prototype 빈은 클라이언트가 요청하기 전까지 스프링 컨테이너에는 빈 객체는 없을텐데 그렇다면 스프링 컨테이너에 빈이 등록된다고 하는 것은 꼭 빈 객체가 생성되지 않더라도 타입 즉, 이름만 등록되어도 컨테이너에 등록된다고 하는 것인가요? -> key(빈 이름):value(빈 객체)로 이루어져 있을 때 value == null이고 key 값만 존재해도 '컨테이너에 빈을 등록한다' 라고 하는 것이 맞는지 궁금합니다.만약 2번이 맞다면 ObjectProvider는 인자로 받은 타입을 스프링 컨테이너에서 찾고, 그 후에 스프링 컨테이너가 생성한 빈 객체를 반환하는 것인가요?
-
미해결스프링 핵심 원리 - 기본편
CoreAppicationTests 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.4:50 에서 java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:85) at jdk.proxy2/jdk.proxy2.$Proxy46.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Suppressed: java.lang.IllegalStateException: Could not initialize plugin: interface org.mockito.plugins.MockMaker (alternate: null) at org.mockito.internal.configuration.plugins.PluginLoader$1.invoke(PluginLoader.java:85) at jdk.proxy2/jdk.proxy2.$Proxy46.getHandler(Unknown Source) at org.mockito.internal.util.MockUtil.getMockHandlerOrNull(MockUtil.java:158) at org.mockito.internal.util.MockUtil.isMock(MockUtil.java:147) at org.mockito.internal.util.DefaultMockingDetails.isMock(DefaultMockingDetails.java:32) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:106) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.afterTestMethod(ResetMocksTestExecutionListener.java:67) at org.springframework.test.context.TestContextManager.afterTestMethod(TestContextManager.java:487) at org.springframework.test.context.junit.jupiter.SpringExtension.afterEach(SpringExtension.java:278) ... 2 more Caused by: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:105) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.getDefaultPlugin(DefaultMockitoPlugins.java:79) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:75) at org.mockito.internal.configuration.plugins.PluginLoader.loadPlugin(PluginLoader.java:49) at org.mockito.internal.configuration.plugins.PluginRegistry.<init>(PluginRegistry.java:29) at org.mockito.internal.configuration.plugins.Plugins.<clinit>(Plugins.java:26) at org.mockito.internal.MockitoCore.<clinit>(MockitoCore.java:71) at org.mockito.Mockito.<clinit>(Mockito.java:1683) at org.springframework.boot.test.mock.mockito.MockReset.get(MockReset.java:105) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:85) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.resetMocks(ResetMocksTestExecutionListener.java:73) at org.springframework.boot.test.mock.mockito.ResetMocksTestExecutionListener.beforeTestMethod(ResetMocksTestExecutionListener.java:60) at org.springframework.test.context.TestContextManager.beforeTestMethod(TestContextManager.java:320) at org.springframework.test.context.junit.jupiter.SpringExtension.beforeEach(SpringExtension.java:240) ... 2 more Caused by: java.lang.reflect.InvocationTargetException at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499) at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:480) at org.mockito.internal.configuration.plugins.DefaultMockitoPlugins.create(DefaultMockitoPlugins.java:103) ... 15 more Caused by: org.mockito.exceptions.base.MockitoInitializationException: Could not initialize inline Byte Buddy mock maker.It appears as if your JDK does not supply a working agent attachment mechanism.Java : 17JVM vendor name : Amazon.com Inc.JVM vendor version : 17.0.11+9-LTSJVM name : OpenJDK 64-Bit Server VMJVM version : 17.0.11+9-LTSJVM info : mixed mode, sharingOS name : Windows 11OS version : 10.0 at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<init>(InlineDelegateByteBuddyMockMaker.java:260) at org.mockito.internal.creation.bytebuddy.InlineByteBuddyMockMaker.<init>(InlineByteBuddyMockMaker.java:23) ... 18 more Caused by: java.lang.IllegalArgumentException at java.instrument/sun.instrument.InstrumentationImpl.appendToClassLoaderSearch0(Native Method) at java.instrument/sun.instrument.InstrumentationImpl.appendToBootstrapClassLoaderSearch(InstrumentationImpl.java:220) at org.mockito.internal.creation.bytebuddy.InlineDelegateByteBuddyMockMaker.<clinit>(InlineDelegateByteBuddyMockMaker.java:177) ... 19 moreCaused by: [CIRCULAR REFERENCE: java.lang.IllegalStateException: Internal problem occurred, please report it. Mockito is unable to load the default implementation of class that is a part of Mockito distribution. Failed to load interface org.mockito.plugins.MockMaker] 이러한 에러가 생깁니다
-
해결됨유니티 시스템 프로그래밍 Pt.1 - 상용 게임 구현을 위한 핵심 시스템 올인원 패키지
싱글턴 관련해서 질문있습니다
안녕하세요 싱글턴 관련해서 질문이 있습니다싱글턴 클래스가 결국 어느 위치에서든 참조할 인스턴스를 생성하는건데 static으로 선언한 클래스도 동일한 기능을 하잖아요?static 클래스로 선언안하고 singleton으로 구현하는 자세한 이유가 궁금합니다!관련해서는 사실 찾아보면서 대략적으로 알고는 있는데 뭔가 더 명료한 답변이 필요하고 현업에 관해서도 얘기를 들을 수 있으면 좋을거같아 질문드립니다좋은강의 감사합니다
-
미해결스프링 핵심 원리 - 기본편
에러가 발생하는 이유가 궁금합니다.
안녕하세요. 7강까지 수강한 학생입니다. Test코드를 실행시 왜 이런 오류가 발생하는지 궁금합니다. 에러 메시지는 아래와 같습니다Coreapplication:15:37:49.791 [main] INFO org.springframework.test.context.support.AnnotationConfigContextLoaderUtils -- Could not detect default configuration classes for test class [hello.core.CoreApplicationTests]: CoreApplicationTests does not declare any static, non-private, non-final, nested classes annotated with @Configuration.15:37:49.833 [main] INFO org.springframework.boot.test.context.SpringBootTestContextBootstrapper -- Found @SpringBootConfiguration hello.core.CoreApplication for test class hello.core.CoreApplicationTests. ____ _/\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/ ___)| |_)| | | | | || (_| | ) ) ) )' |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot :: (v3.3.1)2024-07-16T15:37:50.184+09:00 INFO 21812 --- [core] [ main] hello.core.CoreApplicationTests : Starting CoreApplicationTests using Java 17.0.11 with PID 21812 (started by seongmin in C:\core\core)2024-07-16T15:37:50.185+09:00 INFO 21812 --- [core] [ main] hello.core.CoreApplicationTests : No active profile set, falling back to 1 default profile: "default"2024-07-16T15:37:50.557+09:00 WARN 21812 --- [core] [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'memberServiceImpl' defined in file [C:\core\core\out\production\classes\hello\core\member\MemberServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: No qualifying bean of type 'hello.core.member.MemberRepositoy' available: expected single matching bean but found 2: memoryMemberRespositoy,memberRepository2024-07-16T15:37:50.563+09:00 INFO 21812 --- [core] [ main] .s.b.a.l.ConditionEvaluationReportLogger :Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2024-07-16T15:37:50.594+09:00 ERROR 21812 --- [core] [ main] o.s.b.d.LoggingFailureAnalysisReporter :***************************APPLICATION FAILED TO START***************************Description:Parameter 0 of constructor in hello.core.member.MemberServiceImpl required a single bean, but 2 were found:- memoryMemberRespositoy: defined in file [C:\core\core\out\production\classes\hello\core\member\MemoryMemberRespositoy.class]- memberRepository: defined by method 'memberRepository' in class path resource [hello/core/AppConfig.class]This may be due to missing parameter name informationAction:Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumedEnsure that your compiler is configured to use the '-parameters' flag.You may need to update both your build tool settings as well as your IDE.(See https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x#parameter-name-retention) contextLoad: java.lang.IllegalStateException: Failed to load ApplicationContext for [MergedContextConfiguration@6fd12c5 testClass = hello.core.CoreApplicationTests, locations = [], classes = [hello.core.CoreApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@64f857e7, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@3d6300e8, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@7927bd9f, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@3d3f761a, org.springframework.boot.test.context.SpringBootTestAnnotation@c6ebefee], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null]at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:180)at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:130)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:142)at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:98)at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:260)at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:163)at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
-
해결됨김영한의 실전 자바 - 고급 1편, 멀티스레드와 동시성
첨부한 이미지에 대해 질문이 있습니다.
위 이미지는 멀티태스킹과 멀티프로세싱 파트에서 나온 이미지인데요 이번 프로세스와 스레드 수업을 듣고 위 이미지에 대해 의문이 생겼습니다.프로그램A는 프로세스A, 프로그램A 안에 있는 1,2,3,4는 스레드라고 봐도 될까요?슬리드
-
미해결스프링 핵심 원리 - 기본편
실행 오류 (무슨 오류인지 뭐가 잘못된건지 모르겠음)
아래는 제 구글 드라이브 주소입니다. (코드)https://drive.google.com/drive/folders/1m1-Fdx1zFzropf7p5dkOW1DehLh7Lz7w?usp=drive_linkCoreApplication 클래스를 실행시킬때 홈페이지 주소를 입력하면 ok라는 문구가 잘나오지만빌드창에는 로딩중 마크가 뜨고중단하면 오류가 주르륵 나오는데 내용을 번역하면 아마gradle 업데이트 같은게 안된것같습니다 혹시 번거롭겠지만 전체적으로 확인 한번만 부탁드려도될까요?아래는 오류 코드입니다Execution failed for task ':CoreApplication.main()'.> Build cancelled while executing task ':CoreApplication.main()'* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.> Get more help at https://help.gradle.org.Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.For more on this, please refer to https://docs.gradle.org/8.8/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.BUILD FAILED in 20m 45s3 actionable tasks: 2 executed, 1 up-to-date
-
해결됨김영한의 실전 자바 - 기본편
Student 이해 내용 확인
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]순서 :1. 결국 Student라는 클래스에다가 String name , int age, int grade 멤버변수를 넣어놓는다.2. 다른 클래스에서 데이터 타입형태로 Student로 넣을 수 있다.3. 이를 불러오기 위해서는 변수가 필요한데 그것이 student1이다.4. new Student()로 Student의 객체 생성과 동시에 변수 student1에 담아버린다. 5. 그렇게 되면 student1에는 주소(참조값)인 x001이 대입 된다.6. x001라는 주소에 찾아 들어간다.7. Student 객체 내에 있던, Student 클래스에서 정의 내렸던 멤버 변수인 String name, int age, int grade를 찾을 수 있게 된다.헷갈려서 질문 남깁니다. 제가 이해한 바가 맞나요? 혹시 틀린 부분이 있다면 수정 부탁드립니다..
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
인텔리제이 빨간색 표시
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]빨간색으로 표시되는 이유가 궁금합니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
맥에서는 이런 화면이 뜨지 않아서요
맥으로 하고 있는데인트가 크다라는 문자가 안뜨네요 어떻게 크게 하죠
-
해결됨김영한의 실전 자바 - 중급 1편
String 클래스 - 비교에서 문자열 풀 질문
String 클래스 - 비교에서 문자열 풀 질문이 있습니다.문자열 리터럴의 경우 문자열 풀에 의해 str4 의 참조값은 //x003이 된다고 하셨는데, 이 경우에 str3과 str4가 같은 참조값을 가지게 되는데, 그럼 사이드이펙트가 생길 수 있나요? 근데 코드를 그냥 str3 = 'happy'로 바꾸면 바뀝니다. 왜 같은 참조값을 가지는데 동시에 변경이 안되는 것인가요? 동일한 참조값을 가지면 한쪽이 변경될 경우 다른 한쪽도 변경되어야하는 것 아닌가요..?ㅠㅠ 헷갈립니다...도와주세요ㅠpublic class StringEqualsMain1 { public static void main(String[] args) { String str1 = new String("hello"); //x001 String str2 = new String("hello"); //x002 System.out.println("new String() == 비교: " + (str1 == str2)); System.out.println("new String() equals 비교: " + (str1.equals(str2))); String str3 = "hello"; //x003 String str4 = "hello"; //x004 System.out.println("리터럴 == 비교 : " + (str3 == str4)); System.out.println("리터럴 equals 비교 : " + (str3.equals(str4))); } }
-
미해결김영한의 실전 자바 - 기본편
메서드 생성할 때
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.이전에는 메소드 생성시 public를 적고 static 을 적었는데 왜 이번 강의에서는 public을 적지 않고 바로 static으로 시작하나요? 무엇이 다른가요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
ArrayEx4 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]package array.ex; import java.util.Scanner; public class ArrayEx4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int[] numbers = new int[5]; int total = 0; System.out.println("5개의 정수를 입력하세요: "); for (int i = 0; i < numbers.length; i++) { numbers[i] = scanner.nextInt(); total += numbers[i]; } System.out.print("입력한 정수의 합계: " + total); System.out.println(); double average = (double) total / numbers.length; System.out.println("입력한 정수의 평균: " + average); } }선생님이 풀어주신 코드랑은 다른데 제 코드도 답이 될수있는지 궁금합니다
-
해결됨스프링 핵심 원리 - 기본편
6장 컴포넌트 스캔 - 필터
안녕하세요.강의자료-탐색 위치와 기본 스캔 대상 탐색할 패키지의 시작 위치 지정 문단에서만약 지정하지 않으면 @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치가 된다.라고 읽었습니다 아래 코드에서 질문있습니다.(필터 문단 예제)package hello.core.scan.filter; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; public class ComponentFilterAppConfigTest { @Test void filterScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); Assertions.assertThat(beanA).isNotNull(); org.junit.jupiter.api.Assertions.assertThrows(NoSuchBeanDefinitionException.class , ()->ac.getBean("beanB",BeanB.class)); } @Configuration @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyIncludeComponent.class), excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } }위코드는 강사님이 써주신 코드와 일치하는 코드 입니다. 여기에서 @ComponentScan( includeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyIncludeComponent.class) 를 제외 했을때 즉 beanA를 포함 하는 코드를 지웠습니다. 그러면 아래와 같은 코드가 됩니다.package hello.core.scan.filter; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.FilterType; public class ComponentFilterAppConfigTest { @Test void filterScan() { ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentFilterAppConfig.class); BeanA beanA = ac.getBean("beanA", BeanA.class); Assertions.assertThat(beanA).isNotNull(); org.junit.jupiter.api.Assertions.assertThrows(NoSuchBeanDefinitionException.class , ()->ac.getBean("beanB",BeanB.class)); } @Configuration @ComponentScan( excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION , classes = MyExcludeComponent.class) ) static class ComponentFilterAppConfig { } } 위코드에서 org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'beanA' available 에러가 발생하는 이유가 궁금합니다.. 위 예제에서 @ComponentScan이 붙은 설정 정보 클래스와 beanA클래스는 같은 패키지 내에 있습니다. @ComponentScan이 붙은 설정 정보 클래스의 패키지가 시작 위치가 됨으로 같은 패키지 내에 존재하는 BeanA클래스 객체는 스프링빈으로 등록되는거 아닌가요?
-
미해결스프링 핵심 원리 - 기본편
싱글톤패턴 DIP 위반
[질문 내용]싱글톤 패턴 문제점에서 getInstance() 사용시 DIP를 위반한다고 하신 점이 이해가 잘 안가서 직접 구현해보았습니다. 제가 이해한 내용이 맞나요...? [구현 내용]싱글톤 객체의 의존성 주입에 관한 문제이므로, SingletonService에 주입한 SingletonRepository를 생성하였습니다.public class SingletonRepository { private static final SingletonRepository instance = new SingletonRepository(); public static SingletonRepository getInstance() { return instance; } private SingletonRepository(){} } SingletonService에 SingletonRepository 필드를 추가합니다.public class SingletonService { private SingletonRepository singletonRepository; ... }DIP를 지키기 위해선, DI를 해야합니다. 하지만 SingletonService에 의존관계를 주입할 수 있는 방법이 없습니다...생성자 주입 방법: 추가 객체 생성을 막기 위해 생성자를 막아놓았으므로 불가.필드 주입, setter 주입, 일반 메서드 주입: 스프링 기술, 순수 자바 코드로 주입 불가.클라이언트코드인 SingletonService가 SingletonRepository를 사용하기 위해 다음과 같이 구현체에 의존해야 합니다. public class SingletonService { private SingletonRepository singletonRepository = SingletonRepository.getInstance(); ... }따라서 순수 자바 코드로 싱글톤 패턴 구현 시 DIP를 위반합니다.