当前位置 - 무료 법률 상담 플랫폼 - 상표 양도 - Java 는 어떻게 word 에 따라 cover ord 파일을 수집하여 즉시 분담 문제를 해결합니까?

Java 는 어떻게 word 에 따라 cover ord 파일을 수집하여 즉시 분담 문제를 해결합니까?

Java 는 플랫폼 간, 객체 지향 및 일반 프로그래밍 기능을 갖춘 널리 사용되는 컴퓨터 프로그래밍 언어로 엔터프라이즈 웹 애플리케이션 개발 및 모바일 애플리케이션 개발에 널리 사용됩니다.

James gosling 등은 Sun Microsystems (Sun Microsystems) 에서 근무하며 1990 년대 초반에 Java 언어의 프로토타입을 개발했으며, 원래 Oak 로 명명되어 가전제품 등 소형 시스템에 대한 것이다. 이 스마트 가전제품의 시장 수요가 예상만큼 높지 않았기 때문에 손회사는 이 계획을 포기했다. 1990 년대 인터넷이 발달하면서 Sun 은 인터넷에서 Oak 의 응용 전망을 보고 Oak 를 개조하여 1995 년 5 월 Java 라는 이름으로 공식 발표했습니다. 인터넷의 급속한 발전에 따라 Java 는 점차 중요한 네트워크 프로그래밍 언어가 되었다.

자바 프로그래밍 언어의 스타일은 C++ 와 매우 가깝습니다. Java 는 C++ 언어에서 객체 지향 기술의 핵심을 계승하여 C++ 언어에서 오류를 일으키기 쉬운 포인터를 버리고 대신 참조합니다. 원래 C++ 와 원래 연산자 오버로드를 제거하고 여러 상속 기능을 제거하고 하나의 인터페이스로 교체하여 가비지 수집기 기능을 추가합니다. Java SE 1.5 에서는 제네릭 프로그래밍, 유형 보안 열거, 가변 길이 매개변수 및 자동 압축 해제가 도입되었습니다. Sun Microsystems 는 Java 언어에 대해 "Java 프로그래밍 언어는 간단하고, 객체 지향, 분산, 해석적, 강력하고, 안전하고, 시스템 독립적, 이식가능, 고성능, 멀티스레드 및 동적 언어" 라고 설명합니다.

Java 는 일반 컴파일 언어 또는 리터럴 번역 언어와 다릅니다. 먼저 소스 코드를 바이트 코드로 컴파일한 다음 다른 플랫폼의 가상 시스템에 의존하여 바이트 코드를 해석하고 실행함으로써 "한 번의 작성으로 어디에서나 실행" 하는 크로스 플랫폼 기능을 구현합니다. 초기 JVM 에서는 Java 프로그램의 실행 효율성이 어느 정도 떨어졌습니다. 하지만 J2SE 1.4.2 출시 이후 Java 의 실행 속도가 크게 향상되었습니다.

전통적인 유형과는 달리 Sun 은 Java 를 도입할 때 그것을 개방형 기술로 삼았다. 전 세계 수만 개의 Java 개발 회사들이 서로 호환되어야 하는 Java 소프트웨어를 설계하라는 요청을 받고 있습니다. 자바 언어는 회사의 힘이 아니라 단체의 힘에 의존한다' 는 것은 손씨의 구호 중 하나이며 많은 소프트웨어 개발자들의 인정을 받았다. 이것은 Microsoft 가 주창한 엘리트 지향, 폐쇄 모델과는 완전히 다르다. 또한 Microsoft 는 나중에 경쟁 제품을 출시했습니다. 그물 플랫폼과 자바 모방 C# 언어. 나중에 손회사는 갑골문에 인수되었고, 자바는 갑골문의 제품이 되었다.

현재 휴대폰 운영 체제 안드로이드의 대부분의 코드는 Java 프로그래밍 언어로 작성되었습니다.

초기 자바

Java 의 발명가인 제임스 고스린은

듀크, 자바 언어의 마스코트

처음에 이 언어는 태양마이크로시스템사가 1990 과 65438+2 월에 연구를 시작한 내부 프로젝트일 뿐이다. 태양컴퓨터사의 엔지니어인 패트릭 노턴은 태양컴퓨터사가 개발한 C++ 및 C 언어 컴파일러에 당황했다. 그 중 API 는 사용하기가 극히 어렵기 때문이다. 패트릭은 넥스트로 전향하기로 결정했고, 동시에 이 회사의' 스텔스 프로젝트' 라는 프로젝트를 연구할 기회를 얻었다.

스텔스 프로젝트는 이후 녹색 프로젝트로 이름이 바뀌었고 제임스 고스린과 마이크 셰리단은 패트릭의 작업팀에 합류했다. 이들은 다른 엔지니어들과 함께 캘리포니아 멘로파크시 사구로에 있는 작은 스튜디오에서 차세대 스마트 가전제품 (예: 전자레인지) 프로그래밍을 목표로 신기술을 연구하고 개발하고 있다. 손씨는 미래 기술이 가전제품 분야에서 큰 역할을 할 것으로 전망했다. 이 팀은 처음에 C++ 언어 사용을 고려했지만, Sun 수석 과학자 Bill Joy 를 포함한 많은 회원들은 C++ 및 사용 가능한 API 에 몇 가지 문제가 있음을 발견했습니다.

워크그룹은 임베디드 시스템을 사용하며 사용 가능한 자원이 매우 제한적입니다. 많은 회원들이 C++ 가 너무 복잡하다는 것을 발견하고 많은 개발자들이 자주 오용한다. 그들은 C++ 가 가비지 수집 시스템이 부족하다는 것을 발견했으며 휴대용 보안, 분산 프로그래밍 및 멀티 스레드 기능도 갖추고 있습니다. 마지막으로, 그들은 다양한 장치에 쉽게 이식할 수 있는 플랫폼을 원한다.

사용 가능한 자금에 따라 Joey 는 C 와 Mesa 를 결합한 새로운 언어를 개발하기로 결정했다. 한 보고서에서 조이는 그것을 "미래" 라고 불렀다. 그는 Sun 의 엔지니어가 C++ 기반 객체 지향 환경을 개발해야 한다고 제안했다. 처음에는 Gosling 이 C++ 의 기능을 수정하고 확장하려고 했습니다. 그는 이 새로운 언어를 C++ ++-라고 불렀지만, 나중에 그는 포기했다. 그는 완전히 새로운 언어를 만들려고 하는데, 그는 그것을 "Oak" 라고 명명하고, 그의 사무실 밖의 떡갈나무 이름을 따서 명명한다.

신기술 개발을 위한 많은 비밀 프로젝트와 마찬가지로 워크그룹은 1993 의 여름까지 밤낮으로 일해서야 녹색 운영 체제, Oak 프로그래밍 언어, 클래스 라이브러리 및 하드웨어를 포함한 새로운 플랫폼의 일부를 시연할 수 있었습니다. 첫 번째 시도는 사용자를 돕기 위해 밝은 그래픽 인터페이스와 Duke 라는 지능형 에이전트가 있는 Star7 이라는 PDA 와 같은 장치를 마주하는 것이었습니다. 1992 65438+2 월 3 일, 이 장치는 전시됩니다.

같은 해 6 월 165438+ 10 월, 친환경 프로젝트는 손회사의 전액 출자 자회사인' 1 인유한회사' 로 전환되어 팔로알토로 이주했다. FirstPerson 의 팀은 매우 상호 작용하는 장치를 구축하는 데 관심이 있다. 타임워너 (time warner Inc) 가 TV 셋톱 박스에 대한 제안서를 발표했을 때, FirstPerson 은 그들의 목표를 바꾸고 의견을 구하기 위해 셋톱 박스 플랫폼을 제안했다. 하지만 케이블 업계는 FirstPerson 의 플랫폼이 사용자에게 너무 많은 통제권을 부여한다고 생각하여 FirstPerson 의 입찰이 SGI 에 졌다. 또 다른 3DO 회사와의 셋톱 박스 거래는 성공하지 못했다. 그들의 플랫폼이 TV 업계에서 아무런 이득이 되지 않아 회사는 다시 손회사로 합병되었기 때문이다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 성공명언)

자바 및 인터넷

1994 년 6 월, 존 게이지, 제임스 고스린, 빌 조이, 패트릭 노턴, 웨인 로신, 에릭 스쿠미로 구성된 팀은 3 일간의 브레인스토밍 토론을 거쳐 목표를 다시 바꾸기로 결정했다 모자이크 브라우저가 도래함에 따라 인터넷은 케이블 TV 네트워크에서 볼 수 있는 고도의 상호 작용의 전망으로 진화하고 있다고 그들은 생각한다. 이를 원형으로 Patrick Norton 은 작은 웹 브라우저 WebRunner 를 쓴 뒤 HotJava[ 12] 로 이름을 바꿨다.

1994 10 월, HotJava 및 Java 플랫폼은 회사 고위층을 위한 데모를 실시했습니다. 1994, 자바

1.0a 버전은 이미 다운로드할 수 있지만 Java 및 HotJava 브라우저의 첫 공식 발표는 1995 년 3 월 23 일 SunWorld 컨퍼런스에 있습니다. 성양사의 과학감독 존 게이지가 자바 기술을 발표했다. 이 발표는 웹경사 수석 부사장인 마크 앤더슨의 놀라운 발표와 함께 발표됐다. 그는 웹경사가 자신의 브라우저에 Java 에 대한 지원을 포함할 것이라고 발표했다. (윌리엄 셰익스피어, Northern Exposure (미국 TV 드라마), 스포츠명언) 1996 1 10 월, 성양사는 자바 사업군을 설립하여 자바 기술 개발을 전문으로 했다.

Java 및 Java

상표 검색의 결과 Oak 는 이미 한 비디오 카드 업체에 등록되어 있다. 그래서 같은 해 Oak 는 Java 로 이름이 바뀌었습니다. 이진 파일 (.클래스 파일) 이 Java 소스 코드로 컴파일되고 16 진수 편집기로 열리면 처음 32 비트는 CA FE BA BE, 즉 "CAFE BABE" 로 표시됩니다.

자바의 근황

자바 편집기 소프트웨어 세트

J2SE 환경과 질병 예방 통제 센터의 관계

JVM 의 롤

JSP 페이지의 개념

몇 년 동안의 유행을 거쳐, 브라우저에서 Java 의 지위가 점차 침식되었다. 간단한 대화형 애니메이션에서의 용도는 이미 Adobe 의 Flash 에 의해 완전히 밀려났다. 2005 년 Java 는 Yahoo 게임과 같은 보다 복잡한 애플리케이션에만 사용하는 경향이 있었습니다. 한편, Java 는 Microsoft 의 반대를 받아 Java 플랫폼을 새 버전의 Internet Explorer 와 Windows 에 연결하지 않기로 결정했습니다.

정반대입니다. 월드 와이드 웹 (World Wide Web) 과 핸드헬드 (핸드헬드) 의 서버측에서 자바 (Java) 가 더욱 유행하고 있다. 많은 웹사이트가 백엔드에서 Java 와 같은 자바 기술을 사용한다.

데스크탑 시스템에서는 독립 실행형 자바 프로그램이 비교적 드물다. 자바 플랫폼의 운영 비용이 높기 때문에 많은 사람들의 컴퓨터에 Java 가 설치되어 있지 않기 때문이다. 예전에는 인터넷 대역폭이 작기 때문에 Java 를 다운로드하는 것은 시간이 많이 걸리는 일이었다. 그러나 10 년 컴퓨터 컴퓨팅 기능과 네트워크 대역폭이 크게 발전함에 따라 가상 시스템과 컴파일러의 품질이 향상되었으며 다음을 포함한 많은 어플리케이션이 널리 사용되고 있습니다.

오픈 소스 소프트웨어:

NetBeans 및 Eclipse 와 같은 소프트웨어 개발 도구

안드로이드 운영 체제

제디트

Azureus BitTorrent 클라이언트.

JNode 운영 체제

Apache Software Foundation 의 Ant, Derby, Hadoop, Jakarta, POI 및 Tomcat 입니다.

JBoss 및 GlassFish 응용 프로그램 서버

상용 소프트웨어:

EIOffice (영중 사무소)

"내 세상"

순수 자바 3d 게임 합금 전사 크롬

IBM Websphere, ColdFusion 및 WebLogic

스마트 컨셉

자바 (Java) 로 쓴 소프트웨어도 많이 있습니다. 다음 웹 페이지에서 Java 로 작성된 많은 프로그램을 볼 수 있습니다: /products/ Java Swing 으로 개발된 많은 데스크톱 Java 프로그램 /products/JFC/TSC/Sights/ 현재 Java 는 다음 세 가지 버전으로 제공됩니다.

Java 플랫폼 enterprise edition (Java ee: Java 플랫폼 enterprise edition)

Java 플랫폼, 표준판 (Java SE: Java 플랫폼 표준판)

자바 플랫폼 미니에디션 (자바 me: 자바 플랫폼 미니에디션)

자바 플랫폼, 카드판

자바 오픈 소스 프로젝트

2006 년 SUN 은 JavaOne 에서 Java 오픈 소스 프로젝트를 발표하고 OpenJDK 프로젝트를 발표했습니다. [13]Java virtual machine, Java 컴파일러 및 Java 클래스 라이브러리는 GNU general public license 에 공개됩니다.

버전 기록

마스터 항목: Java 버전 기록

1995 년 5 월 23 일 자바 언어가 탄생했다.

1996 1 월, 첫 JDK-JDK 1.0 이 탄생했습니다.

1996 년 4 월, 10 주요 운영 체제 공급업체들은 제품에 JAVA 기술을 내장할 것이라고 발표했습니다.

1996 년 9 월 자바 기술로 약 83,000 개의 홈페이지를 제작했다.

1997 2 월 18, JDK1..1출시.

1997 년 4 월 2 일 JavaOne 대회가 열렸고 참석자 수가 10000 명을 넘어 당시 세계 동종 회의 규모 기록을 세웠다.

1997 년 9 월 JavaDeveloperConnection 커뮤니티 구성원이 10 만명을 초과했습니다.

1998 년 2 월 JDK1..1다운로드 2 백만 회 이상.

1998 65438+2 월 8 일 JAVA2 엔터프라이즈 플랫폼 J2EE 가 발표되었습니다.

1999 년 6 월 SUN 은 표준판 (J2SE), 기업판 (J2EE) 및 미니판 (J2ME) 의 세 가지 Java 버전을 발표했습니다.

2000 년 5 월 8 일 JDK 1.3 이 발표되었습니다.

2000 년 5 월 29 일 JDK 1.4 가 발표되었습니다.

200 1 년 6 월 5 일 노키아는 2003 년까지 자바를 지원하는 휴대폰 1 억 대를 판매할 것이라고 발표했다.

2006 년 9 월 24 일 5438+0, J2EE 1.3 발표.

2002 년 2 월 26 일 J2SE 1.4 가 발표되었습니다. 그 이후로 Java 의 컴퓨팅 능력이 크게 향상되었습니다.

2004 년 9 월 30 일 18:00PM 과 J2SE 1.5 발표가 Java 언어 발전사에서 또 다른 이정표가 되었습니다. 이 버전의 중요성을 보여주기 위해 J2SE 1.5 는 Java SE 5.0 으로 이름이 바뀌었습니다.

2005 년 6 월, JavaOne 대회가 열렸고 SUN 은 Java SE 6 을 공개했습니다. 이 시점에서 다양한 버전의 Java 가 이름이 바뀌었고 숫자 "2" 가 취소되었습니다. J2EE 는 Java EE 로, J2SE 는 Java SE 로, J2ME 는 Java ME 로 이름이 변경되었습니다.

5438 년 6 월 +2006 년 2 월 SUN 은 JRE6.0 을 발표했습니다.

5438 년 6 월 +2009 년 2 월, SUN 은 Java EE 6 을 발표했습니다.

20 10 1 1, Apache 는 JCP 를 종료하겠다고 위협했다. Oracle 은 Java 커뮤니티에 불친절하기 때문이다 [14].

20 1 1 7 월 28 일 오라클은 Java SE 7 을 발표했습니다.

2065 438+04 03 18 Oracle 은 Java SE 8 을 발표했습니다.

언어적 특징

자바 개발은 다음 다섯 가지 목적을 달성하기 위한 것이다.

객체 지향 프로그래밍 방법을 사용해야 합니다

동일한 프로그램이 다른 컴퓨터 플랫폼에서 실행되도록 허용해야 합니다.

여기에는 컴퓨터 네트워크에 대한 내장 지원이 포함되어야 합니다.

원격 코드를 안전하게 실행하도록 설계되어야 합니다.

사용하기 쉽고 C++) 와 같은 이전 객체 지향 언어의 장점을 활용할 수 있어야 합니다.

자바 기술은 주로 자바 언어, 자바 운영 환경, 클래스 라이브러리 등 여러 부분으로 나뉩니다. 일반적으로 자바 (Java) 를 말할 때, 네가 가리키는 부분을 구분하지 않는다.

Java 는 1.5 릴리스에서 크게 달라졌으며 Sun 은 1.5 버전을 Java 5.0 으로 이름을 변경했습니다.

객체 지향

Java 의 특징 중 하나는 프로그래밍 방법인 객체 지향입니다. 객체 지향 프로그래밍 언어의 핵심 중 하나는 개발자가 소프트웨어를 설계할 때 사용자 정의 유형 및 연결 작업을 사용할 수 있다는 것입니다. 코드와 데이터의 실제 집합을 "객체" 라고 합니다. 객체는 많은 "비헤이비어 (코드)" 와 "상태 (데이터)" 가 바인딩된 객체로 생각할 수 있습니다. 데이터 구조에 대한 수정은 코드와 소통하고 조작해야 하며, 그 반대의 경우도 마찬가지입니다. 객체 지향 설계를 통해 대형 소프트웨어 프로젝트의 계획 및 설계를 보다 쉽게 관리할 수 있으므로 프로젝트 상태를 향상시키고 실패한 프로젝트 수를 줄일 수 있습니다.

크로스 플랫폼

Java 언어의 두 번째 특징은 크로스 플랫폼, 즉 Java 언어로 작성된 프로그램으로, 컴파일 후 변경 없이 모든 하드웨어 장치 조건에서 실행할 수 있다는 것입니다. 이 특성은 흔히 "한 번 컴파일하고, 여기저기 실행" 이라고 불린다.

Java 응용 프로그램을 실행하려면 JRE (Java runtime environment) 를 설치해야 합니다. JRE 에는 JVM (Java Virtual Machine) 과 일부 표준 클래스 라이브러리가 있습니다. Java 응용 프로그램은 JVM 을 통해서만 컴퓨터 시스템에서 실행할 수 있습니다. 그물 프레임 워크. 따라서 JVM 이 컴퓨터에 설치되어 있지 않으면 이러한 프로그램이 실행되지 않습니다.

플랫폼 간 구현은 대부분의 컴파일러가 Java 언어 프로그램을 작성할 때 바이트 코드로 작성된 "중간 제품" 을 생성하여 Java 가상 시스템 (해석 계층) 을 통해 실행되며 가상 기회는 이를 현재 하드웨어 플랫폼의 소스 코드로 변환합니다. 그런 다음 Java 가상 시스템은 표준 라이브러리를 열고 데이터 (그림, 스레드, 네트워크) 에 액세스합니다. 코드 번역에 대한 해석 계층이 이미 있지만 Java 바이트 코드 코드가 JIT 컴파일러에 의해 다시 컴파일되는 경우가 있습니다.

GCJ 와 같은 일부 컴파일러는 레이어를 해석하지 않고 원본 코드를 자동으로 생성할 수 있습니다. 그러나 이러한 컴파일러에서 생성된 코드는 특정 플랫폼에서만 적용할 수 있습니다. 그리고 GCJ 는 현재 일부 Java API 만 지원합니다.

갑골문의 자바 라이센스는' 완전 호환' 으로 마이크로소프트와 승양 사이의 마이크로소프트 관련 프로그램이 RMI 와 Java 인터페이스를 지원하지 않고 자체 사용을 위한 특성을 추가하는 법적 분쟁으로 이어졌다. 성양은 결국 소송에서 승리하여 약 2 천만 달러의 배상을 받았다. 법원은 마이크로소프트가 승양에 대한 자바에 대한 허가 요구를 집행하도록 강요했다. 이에 따라 Microsoft 는 더 이상 Windows 시스템에 Java 를 번들로 제공하지 않으며 최신 버전의 Windows, Windows Vista 및 Internet Explorer 7.0 은 더 이상 Java 어플리케이션 및 컨트롤을 지원하지 않습니다. Shengyang Corporation 및 Java 런타임 시스템을 사용하는 다른 회사는 사용자에게 무료 타사 플러그인 및 Windows 운영 체제 하에서의 프로그램 지원을 제공합니다.

Java 언어는 이식성을 위해 해석 계층을 처음 사용했습니다. 따라서 이 프로그램들은 C 언어와 C++ 보다 훨씬 비효율적이며, 사용자들도 이에 대해 다소 미묘하다. 최근 많은 조사에 따르면 Java 프로그램은 몇 년 전보다 훨씬 빠르게 실행되었으며, 일부 기능이 같은 프로그램 효율성은 C++ 및 C 언어로 작성된 프로그램 [출처 요청] 보다 훨씬 빠른 것으로 나타났다.

Java 언어가 처음 적용되었을 때 해석 계층이 없었고 컴파일해야 할 모든 코드는 시스템의 소스 코드로 직접 변환되었습니다. 이렇게 한 결과 최상의 성능을 얻을 수 있지만 프로그램이 비대해서 정상이 아니다. Java 기술부터 자바 프로그램은 기계 코드로 바뀌었다. 많은 오래된 타사 가상 시스템은 "동적 컴파일" 이라는 기술을 사용합니다. 즉, 가상 시스템의 실시간 모니터링 및 분석 프로그램의 작동 동작, 프로그램에 필요한 부분을 선택적으로 컴파일하고 최적화합니다. 이러한 기술은 모두 코드의 실행 속도를 높이지만 프로그램의 크기를 이상하게 하지는 않습니다.

사실, 프로그램의 이식성은 소프트웨어 작성에서 달성하기 어려운 목표이다. Java 는 "한 번 컴파일하고 어디에서나 실행" 하는 데 성공했지만 플랫폼의 차이로 인해 프로그램이 코드로 변환될 때 미묘하고 눈에 띄지 않는 오류와 사고가 발생할 수 있습니다. 일부 프로그래머들은 이것에 대해 매우 머리가 아프다. 그들은 자바 프로그램이 "한 번 컴파일하고, 여기저기 실행" 하는 것이 아니라 "한 번 컴파일하고, 여기저기 디버깅한다" 고 비웃었다. Java 에서 다음을 수행합니다

예를 들어, AWT, 초기 자바

AWT 에서 제공되는 버튼과 텍스트 영역은 컴퓨터 시스템의 기본 스타일로 표시됩니다. 이로 인해 Java 프로그램이 모드를 제공하지 않는 일부 컴퓨터 시스템 (Microsoft 에서) 에서 오류를 발생시킵니다.

Windows 에는 창 관리자가 있지만 일부 Linux 배포판에는 없습니다. 나중에 SUN 은 Java 를 도입하여 Java AWT 의 몇 가지 문제를 해결했다.

흔들다

플랫폼 독립성으로 인해 Java 는 서버측 소프트웨어 분야에서 매우 성공적이었습니다. 많은 서버측 소프트웨어는 Java 또는 관련 기술을 사용하여 구축됩니다.

자동 가비지 수집 (가비지 수집)

C++ 언어가 사용자가 병을 앓고 있는 이유 중 하나는 대부분의 C++ 컴파일러가 가비지 수집 메커니즘을 지원하지 않기 때문입니다. 일반적으로 프로그래머는 C++ 프로그래밍을 사용할 때 프로그램에서 객체를 초기화할 때 숙주 메모리 스택에 메모리와 주소를 할당한 다음 객체가 필요하지 않을 때 할당된 메모리 주소를 해제합니다. 객체가 스택에 할당되고 프로그래머가 이를 삭제하는 것을 잊은 경우 메모리 누수 (메모리

누설). 과거에는 프로그램을 실행할 때 불필요한 메모리 공간을 낭비하는 많은 양의 지워지지 않은 쓰레기가 발생할 수 있었습니다. 같은 메모리 주소가 두 번 제거되면 프로그램이 불안정하거나 심지어 충돌합니다. 따라서 숙련된 C++ 프로그래머는 삭제 후 포인터를 공백으로 재설정한 다음 삭제하기 전에 포인터가 비어 있는지 여부를 판단합니다.

C++ 는 "스마트 포인터" 또는 C++ 관리 확장 컴파일러를 사용하여 자동 메모리 여유 확보를 수행할 수도 있습니다. 스마트 포인터는 표준 클래스 라이브러리에서 찾을 수 있으며 C++.

너는 어떻게 사비에 대해 이런 질문을 할 수 있니! ) 을 참조하십시오

Microsoft 의 Visual 은 관리 확장을 지원합니다

C++

7.0 이상 버전에서 지원됩니다. 스마트 포인터의 장점은 느린 가비지 수집 메커니즘을 도입할 필요가 없고 스레드 안전은 무시할 수 있다는 것이다. 그러나 단점은 스마트 포인터를 잘못 사용하면 성능이 가비지 수집 메커니즘만큼 좋지 않을 수 있고, 메모리 할당 및 방출로 인해 메모리 조각이 발생할 수 있으므로 수동으로 힙을 압축해야 한다는 것입니다. 또한 스마트 포인터는 템플릿 기반 함수이므로 경험이 없는 프로그래머는 다형성 특성을 사용하여 자동 정리를 수행해야 할 때 속수무책이 될 수 있습니다.

Java 언어는 이와 달리 자동 가비지 수집 기능에 의해 자동으로 처리됩니다. 오브젝트가 만들어져 메모리 스택에 배치됩니다. 객체에 대한 참조가 없을 때 Java 의 자동 가비지 수집 메커니즘이 작동하여 객체가 차지하는 공간을 자동으로 삭제하고 메모리를 확보하여 메모리 누수를 방지합니다.

프로그래머는 finalize 방법을 수정할 필요가 없으며 자동 가비지 수집도 가능합니다. 그러나 메모리 누수는 피할 수 없습니다. 프로그래머가 객체에 없어야 할 참조를 실수로 삭제하는 것을 잊어버린 경우에도 메모리 누수는 불가피합니다.

메모리 가비지 수집 메커니즘은 공급업체마다 다른 버전의 JVM 에서 동일하지 않습니다. 일반적으로 메모리 가비지 수집 메커니즘의 새 버전이 더 빠릅니다. IBM, BEA, SUN 등 JVM 을 개발한 회사들은 모두 세계에서 가장 빠른 JVM[ 소스 요청] 을 만들었다고 주장했고, JVM 성능의 세계 기록도 끊임없이 깨지고 있다.

IBM 은 가비지 수집 메커니즘이 없는 C++ 메모리 처리보다 몇 배 빠른 Java 메모리 재활용 메커니즘에 대한 기술 문장 [15] 를 보유하고 있으며, 유명한 Java 기술 서적' Java 로 생각' 에도 Java 메모리와 성능이 c++[/kloc-0 보다 훨씬 높다는 장이 있다

기초문법

자바 프로그램을 쓰기 전에 다음 사항에 유의하십시오.

대/소문자 구분: Java 는 대/소문자를 구분합니다. 즉 식별자 Hello 와 hello 가 다릅니다.

클래스 이름: 모든 클래스에 대해 클래스 이름의 첫 글자가 대문자여야 합니다. 클래스 이름이 여러 단어로 구성된 경우 각 단어의 첫 글자를 대문자로 써야 합니다 (예: MyFirstJavaClass).

메서드 이름: 모든 메서드 이름은 소문자로 시작해야 합니다. 메서드 이름에 여러 단어가 포함된 경우 myFirstJavaMethod 와 같이 뒤에 오는 각 단어의 첫 글자를 대문자로 써야 합니다.

출처 파일명: 출처 파일명은 클래스 이름과 같아야 합니다. 파일을 저장할 때 클래스 이름을 파일 이름으로 사용하고 (Java 는 대/소문자를 구분한다는 것을 기억) 파일 이름의 접미사는 입니다. 자바. 파일 이름과 클래스 이름이 다를 경우 컴파일 오류가 발생할 수 있습니다.

Main 메소드 포털: 모든 Java 프로그램은 공용 정적 void main (string [] args) 메소드에 의해 실행됩니다.

Java 키워드

Java 키워드가 키워드 아래에 나열됩니다. 이러한 키워드는 상수, 변수 및 식별자 이름에 사용할 수 없습니다.

키워드

형용

요약

추상 메서드, 추상 클래스의 수정자

유지 보수

어설 션 조건이 충족되었는지 여부.

계속하다

순환체의 나머지 부분은 집행되지 않는다.

시스템 기본값

Switch 문의 기본 분기

잠시 하다

루프 문에서 루프 바디는 한 번 이상 실행됩니다

두 배

64 비트 배정밀도 부동 소수점 숫자

기타

If 조건이 충족되지 않을 때 실행되는 분기입니다.

열거형

열거 유형

확장

한 클래스가 다른 클래스의 하위 클래스임을 나타냅니다.

마지막

정의 상수를 나타냅니다.

마지막으로

예외가 있든 없든 코드를 실행합니다.

떠다니는 물건

32 비트 단위 정밀도 부동 소수점 숫자

을 위해

For 루프 문

로 이동합니다

프로세스 점프에 사용 (사용할 수 없음, 자유롭게 점프할 수 없음을 나타냄)

만약

조건문

도구

클래스가 인터페이스를 구현하도록 지시합니다.

수입

가져오기 클래스

인스턴스 of

객체가 클래스의 인스턴스인지 테스트합니다.

(Internationalorganizations 와 동일) 국제기구

32 비트 정수

연결

인터페이스는 추상 유형이며 메서드와 상수의 정의만 있습니다.

길다

64 비트 정수

현지

표시 방법은 비 Java 코드로 구현됩니다.

새로운

새 클래스 인스턴스 할당

소포

일련의 관련 클래스가 패키지를 형성합니다.

개인

클래스 내에서만 액세스할 수 있는 전용 필드 또는 메서드를 나타냅니다.

보호

필드는 보호 유형을 나타냅니다

대중의

* * * 에 속성 또는 메서드가 있음을 나타냅니다.

돌아오다

메서드 반환 값

짧은

16 자리

정전기

클래스 수준에서 정의되고 모든 인스턴스에서 공유됨을 나타냅니다.

Strictfp

부동 소수점 숫자의 비교는 엄격한 규칙을 사용합니다.

아주 좋아요.

기본 클래스를 나타냅니다

변환

명령을 선택합니다

동기화됨

한 번에 하나의 스레드에서만 액세스할 수 있는 코드 블록을 나타냅니다.

이것은

현재 인스턴스를 호출하거나 다른 생성자를 호출합니다

던지다

예외를 던지다

던지다

메소드로 인해 발생할 수 있는 예외를 정의합니다.

짧은

직렬화하지 않을 필드를 수정합니다.

시도하다

코드 블록에 예외 처리가 필요함을 나타냅니다.

비어 있습니다

Tag 메서드는 값을 반환하지 않습니다.

불안정한

레이블 필드는 동기화하지 않고 여러 스레드에서 동시에 액세스할 수 있습니다.

안에 ... 기간

While 루프

주다주석을 달다

주석 기능: 프로그램이 무엇이고 어떻게 만들어졌는지 결정합니다. 주석은 프로그래머들이 서로 소통하고 프로그램을 이해하는 데 도움이 된다. 주석은 프로그래밍 언어가 아니므로 컴파일러에서 프로그램을 컴파일할 때 무시됩니다.

인터페이스 및 범주

Java 에는 다음과 같이 사용할 수 있는 인터페이스를 만드는 범주가 함께 제공됩니다.

삭제 가능한 공용 인터페이스 {

Voiddelete ();

}

이 코드는 제거 가능한 인터페이스를 구현하는 모든 클래스가 delete () 메서드를 구현해야 한다는 것을 의미합니다. 각 범주는 이 메서드의 구현을 사용자 정의할 수 있습니다. 이 개념은 여러 가지 용도가 있을 수 있다. 한 가지 범주의 예는 다음과 같습니다.