জাভা 7 এ নতুন বৈশিষ্ট্য


উত্তর:


213

জেডি কে 7 রিলিজ নোট থেকে জাভা এসই 7 বৈশিষ্ট্য এবং বর্ধন

এটি ওপ্যাজেডকে 7 বৈশিষ্ট্য পৃষ্ঠা থেকে জাভা 7 নতুন বৈশিষ্ট্যগুলির সংক্ষিপ্তসার :

ভিএম জেএসআর 292: গতিশীল টাইপযুক্ত ভাষার জন্য সমর্থন (ইনভোকডিনামিক)
        কঠোর শ্রেণি-ফাইল পরীক্ষা করা
ল্যাং জেএসআর 334: ছোট ভাষার বর্ধিতকরণ (প্রকল্পের মুদ্রা)
মূল শ্রেণি-লোডার আর্কিটেকচার আপগ্রেড করুন
        একটি URLClassLoader বন্ধ করার পদ্ধতি
        সংকেত এবং সংগ্রহ আপডেট (jsr166y)
আই 18n ইউনিকোড 6.0
        স্থানীয় বৃদ্ধি
        পৃথক ব্যবহারকারী লোকেল এবং ব্যবহারকারী ইন্টারফেস লোকেল
আয়নেট জেএসআর 203: জাভা প্ল্যাটফর্মের জন্য আরও নতুন আই / ও এপিআই (NIO.2)
        জিপ / জার সংরক্ষণাগারগুলির জন্য NIO.2 ফাইল সিস্টেম সরবরাহকারী
        এসসিটিপি (স্ট্রিম কন্ট্রোল ট্রান্সমিশন প্রোটোকল)
        এসডিপি (সকেট সরাসরি প্রোটোকল)
        উইন্ডোজ ভিস্তা আইপিভি 6 স্ট্যাকটি ব্যবহার করুন
        টিএলএস 1.2
সেকেন্ড এলিপটিক-কার্ভ ক্রিপ্টোগ্রাফি (ইসিসি)
jdbc জেডিবিসি 4.1
জাভা 2D এর জন্য ক্লায়েন্ট এক্সরেন্ডার পাইপলাইন
        6u10 গ্রাফিক্স বৈশিষ্ট্যগুলির জন্য নতুন প্ল্যাটফর্ম এপিআই তৈরি করুন
        নিমং দোলের জন্য চেহারা এবং অনুভূতি
        JLayer উপাদান সুইং
        গ্রাভিল শব্দ সংশ্লেষক [নতুন]
ওয়েব এক্সএমএল স্ট্যাক আপডেট করুন
এমজিএমটি এমবিয়ান উন্নত [এমপিডেট]

জাভা 1.7 এ নতুন বৈশিষ্ট্যগুলির জন্য কোড উদাহরণ

রিসোর্স-এর বিবৃতি দিয়ে চেষ্টা করুন

এই:

BufferedReader br = new BufferedReader(new FileReader(path));
try {
   return br.readLine();
} finally {
   br.close();
}

হয়ে:

try (BufferedReader br = new BufferedReader(new FileReader(path)) {
   return br.readLine();
}

বন্ধ করতে আপনি একাধিক সংস্থান ঘোষণা করতে পারেন:

try (
   InputStream in = new FileInputStream(src);
   OutputStream out = new FileOutputStream(dest))
{
 // code
}

সংখ্যার আক্ষরিক মধ্যে বোঝা

int one_million = 1_000_000;

স্ট্রিং সুইচ

String s = ...
switch(s) {
 case "quux":
    processQuux(s);
    // fall-through

  case "foo":
  case "bar":
    processFooOrBar(s);
    break;

  case "baz":
     processBaz(s);
    // fall-through

  default:
    processDefault(s);
    break;
}

বাইনারি আক্ষরিক

int binary = 0b1001_1001;

জেনেরিক ইনস্ট্যান্স তৈরির জন্য উন্নত প্রকারের অনুক্রম

Map<String, List<String>> anagrams = new HashMap<String, List<String>>();

হয়ে:

Map<String, List<String>> anagrams = new HashMap<>();

একাধিক ব্যতিক্রম ধরা

এই:

} catch (FirstException ex) {
     logger.error(ex);
     throw ex;
} catch (SecondException ex) {
     logger.error(ex);
     throw ex;
}

হয়ে:

} catch (FirstException | SecondException ex) {
     logger.error(ex);
    throw ex;
}

SafeVarargs

এই:

@SuppressWarnings({"unchecked", "varargs"})
public static void printAll(List<String>... lists){
    for(List<String> list : lists){
        System.out.println(list);
    }
}

হয়ে:

@SafeVarargs
public static void printAll(List<String>... lists){
    for(List<String> list : lists){
        System.out.println(list);
    }
}

4
কোডের উদাহরণগুলি খুঁজে পাওয়া শক্তের জন্য +1 কোড। আপনি আরও যোগ করতে পারেন?
জ্যাসজ

4
উন্নত প্রকারের অনুমিতিটি সি # থেকে একটি অদ্ভুত পরিবর্তনের সাথে একটি রেফারেন্স টাইপ করা হলেও দুঃখজনক অনুলিপি বলে মনে হচ্ছে, তবে বস্তুটি নয় ?? কি কৌতুক!
জাসজ

4
@ জাজ, হ্যাঁ নিশ্চিত, এটি ধারাবাহিক উন্নতিতে রয়েছে
ডেক্সগা

তাহলে ওপি-র কাছে প্রশ্ন, আপনার মতামত কী? এই বর্ধনগুলি কি কেবলমাত্র উত্পাদনশীলতার দিকে রয়েছে, বা এগুলি কি সত্যিই প্রোগ্রামগুলির কার্য সম্পাদন উন্নত করতে পারে? যদি কোনও বাইটকোড পরিবর্তন না হয়, তবে নতুন ভাষা বর্ধনগুলি 1.5 হিসাবে চিহ্নিত বাইকোড দিয়ে ব্যবহার করা যাবে?
দিমিত্রি আর

ভাষার উন্নতি না হলেও, Objectsনাল রেফারেন্সগুলি পরীক্ষা করা এড়াতে স্থির পদ্ধতি সহ নতুন শ্রেণি রয়েছে। উদাহরণ: if (obj != null && obj.equals(anotherObj))হয়ে যায়if (Objects.equals(obj, anotherObj))
কারকামানো

13

জাভা স্ট্যান্ডার্ড সংস্করণের নতুন বৈশিষ্ট্য (জেএসই 7)

  1. জেলেয়ার ক্লাসের সাথে উপাদানগুলি সাজান:

    জে লায়ার ক্লাসটি সুইং উপাদানগুলির জন্য একটি নমনীয় এবং শক্তিশালী সজ্জাকারী। জাভা এসই in এর জেলেয়ার বর্গটি জাভা.নেটের জেক্সলায়ার প্রকল্প প্রকল্পের সাথে একই রকম spirit জেলেয়ার ক্লাসটি প্রাথমিকভাবে জেএক্সলায়ার প্রকল্পের উপর ভিত্তি করে তৈরি হয়েছিল, তবে এর এপিআই পৃথকভাবে বিকশিত হয়েছিল।

  2. স্যুইচ বিবৃতি স্ট্রিংস :

    জেডিকে 7-এ, আমরা একটি স্ট্রিং অবজেক্টটি একটি স্যুইচ স্টেটমেন্টের অভিব্যক্তিতে ব্যবহার করতে পারি। জাভা সংকলক সাধারণত সুইড স্টেটমেন্টগুলি থেকে স্টেইনিং অবজেক্টগুলি ব্যবহার করে স্টেইনড অবজেক্টগুলি ব্যবহার করে তবে আরও কার্যকর স্টেটমেন্টগুলি থেকে আরও কার্যকর বাইটকোড উত্পন্ন করে।

  3. জেনেরিক ইনস্ট্যান্সের জন্য টাইপ অনুক্রম:

    যতক্ষণ সংকলক প্রসঙ্গ থেকে টাইপ আর্গুমেন্টগুলি অনুমান করতে পারে ততক্ষণ জেনেরিক বর্গের কনস্ট্রাক্টরকে অনুরোধ করার জন্য প্রয়োজনীয় ধরণের আর্গুমেন্টগুলি প্রতিস্থাপন করতে পারি। এই জোড়া কোণ বন্ধনিকে অনানুষ্ঠানিকভাবে হীরা বলা হয়। জাভা এসই 7 জেনেরিক উদাহরণ তৈরির জন্য সীমিত প্রকারের অনুমিতিকে সমর্থন করে; কনস্ট্রাক্টরের প্যারামিটারাইজড ধরণের প্রসঙ্গটি থেকে স্পষ্ট হলে আপনি কেবল প্রকারের অনুক্রম ব্যবহার করতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত উদাহরণটি সংকলন করে না:

    List<String> l = new ArrayList<>();
    l.add("A");
    l.addAll(new ArrayList<>());
    

    তুলনায়, নিম্নলিখিত উদাহরণটি সংকলন করে:

    List<? extends String> list2 = new ArrayList<>();
    l.addAll(list2);
    
  4. উন্নত প্রকারের চেকিং সহ একাধিক ব্যতিক্রমের ধরণ এবং পুনর্বিবেচনা ব্যতিক্রমগুলি ধরা:

    জাভা এসই 7 এবং তার পরে, একটি একক ক্যাচ ব্লক একাধিক ধরণের ব্যতিক্রম পরিচালনা করতে পারে। এই বৈশিষ্ট্যটি কোড নকলকে হ্রাস করতে পারে। নিম্নলিখিত কোডটি বিবেচনা করুন, যার প্রতিটি ক্যাচ ব্লকে সদৃশ কোড রয়েছে:

    catch (IOException e) {
        logger.log(e);
        throw e;
    }
    catch (SQLException e) {
        logger.log(e);
        throw e;
    }
    

    জাভা এসই 7 এর পূর্বে প্রকাশিত ক্ষেত্রে, সদৃশ কোডটি মুছে ফেলার জন্য একটি সাধারণ পদ্ধতি তৈরি করা কঠিন কারণ ভেরিয়েবলের ই বিভিন্ন ধরণের রয়েছে। নিম্নলিখিত উদাহরণটি, যা জাভা এসই 7 এবং পরে বৈধ, সদৃশ কোডটি মুছে ফেলে:

    catch (IOException|SQLException e) {
        logger.log(e);
        throw e;
    }
    

    ক্যাচ ক্লজটি ব্লকটি পরিচালনা করতে পারে এমন ব্যতিক্রমগুলির ধরণগুলি নির্দিষ্ট করে এবং প্রতিটি ব্যতিক্রম প্রকারটি উল্লম্ব বার (|) দিয়ে পৃথক করা হয়।

  5. Java.nio.file প্যাকেজ

    java.nio.fileপ্যাকেজ এবং তার সংশ্লিষ্ট প্যাকেজ, java.nio.file.attribute, ফাইল ইনপুট / আউটপুট এবং ফাইল সিস্টেম ব্যবহার করার জন্য ব্যাপক সহায়তা প্রদান। একটি জিপ ফাইল সিস্টেম সরবরাহকারী জেডিকে in এও উপলব্ধ।

সূত্র: http://ohmjavaclasses.blogspot.com/


6

যথাযথ! " জাভা বৈশিষ্ট্যগুলি " এর জন্য শীর্ষ দশটি গুগল অনুসন্ধানের ফলাফল (অকেজো) তালিকায় ফিরে আসে:Simple, Object-Oriented, Portable, Platform independent, Secured...
মেরিনোস আন

3

জন স্কিটি যা বলেছিল তা ছাড়াও, এখানে জাভা 7 প্রকল্পের একটি সংক্ষিপ্তসার রয়েছে । এটি বৈশিষ্ট্যগুলির একটি তালিকা এবং বিবরণ অন্তর্ভুক্ত করে।

দ্রষ্টব্য: জেডিকে 7 জুলাই 28, 2011 এ প্রকাশিত হয়েছিল, সুতরাং আপনার এখন সরকারী জাভা এসই সাইটে যেতে হবে


এফওয়াইআই, এটি একটি দুর্দান্ত উপস্থাপনা তবে বেশ পুরানো এবং কিছুটা পুরানো।
অ্যালেক্স মিলার

আমি এই লিঙ্কটি ব্যবহার করার সময় হিব্রু ভাষায় একটি ত্রুটি পৃষ্ঠা পেয়েছি - কোথাও কি আরও একটি টু ডেট কপি আছে?
সাইমন নিকারসন

1

ভাষা পরিবর্তন :

-Project Coin (small changes)
-switch on Strings
-try-with-resources
-diamond operator

গ্রন্থাগার পরিবর্তন :

-new abstracted file-system API (NIO.2) (with support for virtual filesystems)
-improved concurrency libraries
-elliptic curve encryption
-more incremental upgrades

প্ল্যাটফর্ম পরিবর্তন :

-support for dynamic languages

নীচে JAVA 7 এর নতুন যুক্ত বৈশিষ্ট্যগুলি ব্যাখ্যা করে লিঙ্কটি দেওয়া হয়েছে, প্রতিটি বৈশিষ্ট্যের জন্য সম্ভাব্য ছোট উদাহরণগুলির সাথে ব্যাখ্যাটি স্ফটিক স্বচ্ছ:

http://radar.oreilly.com/2011/09/java7-features.html


0

জেনেরিক উদাহরণ তৈরির জন্য ডায়মন্ড (<>) অপারেটর ব্যবহার করা

Map<String, List<Trade>> trades = new TreeMap <> ();

সুইচ স্টেটমেন্টগুলিতে স্ট্রিং ব্যবহার করে

String status=  “something”;
   switch(statue){
     case1: 
     case2: 
     default:
    }

সংখ্যার আক্ষরিক মধ্যে বোঝা

ইন্ট ভ্যালি 12_15; লম্বা ফোন নেই = 01917_999_720L;

"|" ব্যবহার করে একাধিক ব্যতিক্রম ছোঁড়ার জন্য একক ধরা স্টেটমেন্ট ব্যবহার অপারেটর

catch(IOException | NullPointerException ex){
          ex.printStackTrace();   
    }

() সংস্থানগুলি বন্ধ করার দরকার নেই কারণ জাভা 7 টি চেষ্টা করে-সংস্থানসমূহের বিবৃতি সরবরাহ করে

try(FileOutputStream fos = new FileOutputStream("movies.txt");
      DataOutputStream dos = new DataOutputStream(fos)) {
              dos.writeUTF("Java 7 Block Buster");
  } catch(IOException e) {
        // log the exception
  }

উপসর্গ "0 বি" বা "0 বি" সহ বাইনারি আক্ষরিক


0

আমি মনে করি ফোরকজাইনপুল এবং এক্সিকিউটার ফ্রেমওয়ার্ক সম্পর্কিত সম্পর্কিত বর্ধন জাভা 7-তে একটি গুরুত্বপূর্ণ সংযোজন।


-2

নীচের তালিকায় জাভা এসই 7 এর বর্ধিত পৃষ্ঠাগুলির লিঙ্ক রয়েছে।

Swing
IO and New IO
Networking
Security
Concurrency Utilities
Rich Internet Applications (RIA)/Deployment
    Requesting and Customizing Applet Decoration in Dragg able Applets
    Embedding JNLP File in Applet Tag
    Deploying without Codebase
    Handling Applet Initialization Status with Event Handlers
Java 2D
Java XML – JAXP, JAXB, and JAX-WS
Internationalization
java.lang Package
    Multithreaded Custom Class Loaders in Java SE 7
Java Programming Language
    Binary Literals
    Strings in switch Statements
    The try-with-resources Statement
    Catching Multiple Exception Types and Rethrowing Exceptions with Improved Type Checking
    Underscores in Numeric Literals
    Type Inference for Generic Instance Creation
    Improved Compiler Warnings and Errors When Using Non-Reifiable Formal Parameters with Varargs Methods
Java Virtual Machine (JVM)
    Java Virtual Machine Support for Non-Java Languages
    Garbage-First Collector
    Java HotSpot Virtual Machine Performance Enhancements
JDBC

রেফারেন্স 1 রেফারেন্স 2


4
জাভা অফিসিয়াল পৃষ্ঠাতে আমরা কী খুঁজে পেতে সক্ষম হয়েছি সেই তালিকার পরিবর্তে আপনার আরও সংক্ষিপ্ত বিবরণ বা উদাহরণ দেওয়া উচিত।
কেন ব্লক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.