Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Artiklar / Titel på artikeln

Java lathund #3 - Reserverade ord och primitiva datatyper

Postad 2002-10-08 av Andreas Eriksson i sektionen ASP.NET, C#, Okategoriserat med 0 Kommentarer | Läst av: 10877, Betyg: 87%

Förord

Hejsan! I den här artikeln, som är en fortsättning på artikelserien Java lathund, ska vi kika lite på reserverade ord och primitiva datatyper i Java.
Innehåll
  » Reserverade ord i Java
  » Primitiva datatyper i Java
  » Signed integral data types
  » Reella tal i Java
  » boolean
  » char
  » String
  » Summering
  » Referenser
  » Om skribenten…
Relaterade artiklar
  » Java lathund #1 - Hello World
  » Java lathund #2 - Klass och main-metod


Reserverade ord i Java


Precis som i andra programmeringsspråk som t.ex. C++, C och VB m.fl. har Java reserverade ord. D.v.s. ord/termer som är reserverade och kan därför inte användas som klassnamn, attributnamn etc.

I Java har vi 51 stycken reserverade ord. Dessa finns i nedanstående tabell:










































































abstractconstfinalinstanceofprivateswitchvoid
booleancontinuefinallyintprotectedsynchronizedvolatile
breakdefaultfloatinterfacepublicthiswhile
bytedoforlongreturnthrow
casedoublegotonativeshortthrows
catchelseifnewstatictransient
charextendsimplementsnullstrictfptrue
classfalseimportpackagesupertry


De reserverade orden goto och const har ingen betydelse i Java men är ändå reserverade.

Vad alla dessa olika ord/termer har för innebörd kommer jag nog inte gå igenom i denna artikelserie, men en del av dem kommer vi att kika på.
En del av dem är åtkomstmodifierare, en del är logiska operatorer och en del är primitiva datatyper som vi ska titta på härnäst...


Primitiva datatyper i Java


I Java har vi 8 stycken primitiva datatyper. Dessa är:


  • boolean
  • char
  • byte
  • short
  • int
  • long
  • float
  • double


Och deras storlek i bits är enligt följande tabell:






































Typ:Antal bitar:
boolean1
byte8
char16
short16
int32
float32
long64
double64



Signed integral data types


Detta innebär heltals datatyper som kan anta både negativa tal och poitiva tal, d.v.s. –2 och 32 till exempel.
I Java finns det 4 stycken sådana signerade heltals datatyper. Dessa är:


  • byte
  • short
  • int
  • long


Som vi minns från föregående tabell över storlek i bits så är dessa datatyper olika stora. Detta betyder att de kan representera olika stort ”omfång” av tal.
Följande tabell visar vilket minsta tal respektive största tal varje datatyp kan representera:



























TypMinsta talStörsta tal
byte-2727-1
short-215215-1
int-231231-1
long-263263-1



Reella tal i Java


Reella tal är tal som kan innehålla ett decimalkoma eller beskrivas i exponetform. Exempel på detta är t.ex. 2.5 och 23.456E-23.
I Java har vi två datatyper som representerar reella tal. Dessa är:


  • float
  • double


Dessa reella tals omfång är enligt följande på ett ungefär:




















TypMinsta talStörsta talNoggrannhet
float-3.4 * 10383.4 * 1038ca. 7 siffror
double-1.7 * 103081.7 * 10308ca. 15 siffror


I Java kan man ange suffix som anger om det aktuella talet är en float eller double. Dessa är bokstäverna d/D och f/F.


Ex:

double tal1 = 12d;
double tal2 = 12D;
float tal3 = 12f;
float tal4 = 12F;


Observera! Att Ni inte kan tilldela en double till en float p.g.a. att float inte har tillräckligt med bitar för att "hålla" en double.


Ex:

double tal1 = 12f; // Ok! double är i storlek 64 bitar och float "bara" 32 bitar.
float tal3 = 12d; // Fel! float är i storlek 32 bitar och kan därmed INTE "hålla" en double på 64 bitar.


Detta gäller i och för sig alla datatyper och är ett vanligt fel som man i början brukar göra.



boolean


boolean i Java representerar, som det kanske hörs av namnet, en boolsk datatyp. Den kan endast ha två värden: true eller false.


Ex:

boolean sant = true;
boolean falskt = false;




char


En char representerar ett ensamt tecken i Java. Dessa beskrivs genom att man tilldelar en char variabel ett tecken inom två apostroftecken. Det är också möjligt att använda sig av Unicode för att representera ett tecken.


Ex:

char ettTecken = 'A';
char ettAnnatTecken = '\u4567';


Java stödjer också några s.k. escape sequences för att representera speciella tecken. Dessa är:

  • '\n' för ny linje
  • '\r' för RETURN
  • '\t' för TAB
  • '\b' för BACKSPACE
  • '\f' för FORM FEED
  • '\'' för apostrof
  • '\"' för citationstecken
  • '\\' för BACKSLASH


Nu tänkte jag att vi ska titta lite på hur man representerar strängar i Java. En liten förhandstitt fick Ni i föregående artikel, men jag tänkte nu förklara det lite närmare.



String


String är i Java ingen primitiv datatyp utan ett objekt. Ett litet speciellt objekt dock för man behöver inte skapa ett nytt objekt av klassen String för att använda det.

För detta krävs ett exempel och en förklaring:


Ex:

String minText = "Hej!";
String annanText = new String("Hej då!");


Den första kodraden kanske inte är så konstig, men vad är det där andra?

Jo, när man ska skapa ett nytt objekt (d.v.s. skapar en instans av en klass) så säger man helt enkelt "nytt objekt". Och i detta fall så kan objektet som skapas ta en inparameter till sin konstruktor (vilket vi kommer prata mer om i kommande artiklar).

På andra raden säger vi alltså: "skapa ett nytt objekt utifrån klassen String med denna sträng". Detta skulle kunna liknas med följande meddelande om det gällde metaforen för klasser i den föregående artikeln: "bygg ett nytt hus som ska vara rött".

Jag vet, har man inte tidigare sysslat med objekt och objektorientering så kanske detta är hårdsmält. Så länge får ni bara acceptera att man kan skapa nya String objekt så här.

Det är inte vanligt att man kan "direkt" tilldela ett objekt ett värde som vi gör i exemplet på rad 1 ovan. När det gäller just String klassen så föredrar jag att man gör just på detta sätt beskrivet på rad 1. Anledningen till detta är att det kostar i prestanda att s.k. instantiera objekt utifrån en klass med det reserverade ordet new.



Summering


Efter denna artikel ska vi ha lärt oss de reserverade orden i Java och vilka de primitiva datatyperna är. Vi gick också idag in på ett färdigdefinierat objekt som finns i Javas standard bibliotek, nämligen klassen String.

I nästa artikel ska vi prata lite mer om konstruktor som anropas vid skapandet av ett objekt. Lite kodexempel som illustrerar hur man skapar nya objekt och vad som verkligen händer "bakom kulisserna" kommer också att vara på sin plats samt en del om metoder med eller utan inparametrar och returtyper.



Referenser


Skansholm, J. (1999). Java Direkt (2:a rev. Uppl.). Lund: Studentlitteratur.
Roberts, S., Heller, P., & Ernest, M. (2000) Complete Java 2 Certification Study Guide (2nd Ed.). Alameda CA: SYBEX.
java.sun.com



Om skribenten…


Andreas Eriksson arbetar idag som frilandskonsult med bl.a. distribuerad programmering och systemutveckling i Java. Han har tidigare föreläst på bl.a. Högskolan i Gävle inom objektorienterad databasutveckling med språket Java som verktyg.
Han har mångårig erfarenhet av utveckling i Java och är sedan 2002 Sun Certified Java Developer for the Java 2 Platform.

Maila mig gärna för kommentarer.
Upp

0 Kommentarer

Skriv en kommentar på artikeln

Ditt betyg på artikeln



Kommentar:





Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
1 009
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies