Unformatted text preview:

Introduction to PrimitivesOverviewPrimitivesintbyte and shortlongdoublefloatAn aside: approximationsGiving names to numbersVariablesDeclaring variablesGiving values to variablesNumber “width”Widening and narrowingCastsExample castsThe fifth integer typeMixed typesMath methodsMethod parametersThe EndJan 14, 2019Introduction to Primitives2OverviewToday we will discuss:The eight primitive types,especially int and doubleDeclaring the types of variablesOperations on primitivesThe assignment statementHow to print results3PrimitivesPrimitives are the “basic” data valuesThere are eight types of primitives:boolean -- used for true and false valueschar -- used for single characters (letters, etc.)byte, short, int, long -- four different kinds of integer (whole number) valuesfloat, double -- two different kinds of decimal numbers (numbers with a decimal point)4intThe most important integer type is intAn int is a “whole” number (no decimal point)Numbers occupy memory in the computerLarger numeric types require more memory byte: 1 byte short: 2 bytes int: 4 bytes long: 8 bytesAn int can be between about two billion (two thousand million) and negative two billionIf you just write a number, such as 25, Java assumes it is an intHence it is easier to work with int values than with the other integer types (byte, short, and long)Use int in preference to other integer types5byte and shortA byte can be between -128 and 127A short can be -32768 to 32767Why these numbers?These are “round numbers” in binary; for example, 0111 1111 1111 1111 is binary for 32767 1000 0000 0000 0000 is binary for -32768 The first bit is the sign bit: a 1 means it’s a negative numberUse byte or short only whenYou know the numbers are all smallThere are millions of numbers to remember6longlong integers are for when two billion isn’t large enough for your needsA long can be as long as about 19 digitsA long occupies twice as much space as an intArithmetic on long values is slowerUse long only when you need really big numbersA long number is written like an int, but with an L suffixExamples: 895000000000L, 25L, 5L, -123LEven larger numbers are available in Java--but they are objects, not primitives7doubleA double represents a “real” numberAlso sometimes called “floating point”These are numbers with a decimal pointIf you just write a real number, such as 1.37, Java assumes it is a doubleHence it is easier to work with double values than with float valuesdoubles can also be written using scientific notation, where E stands for “times ten to the power”Examples: 7.3E5 = 730000.0, 7.3E-5 = 0.000073A double can represent numbers in the range 4.9*10-324 to 1.8*10308 and has 15 or 16 digits of accuracyUse double in preference to float8floatfloat is the other kind of “real,” or “floating point” numberfloat has about 8 digits of accuracyArithmetic with float is not fasterUse float only to save space when there are millions of numbers involved A float constant is written like a double constant, but with an F suffixExamples: 1.23F, -9F, 6.7E14FA float can represent numbers in the range 1.4*10-45 to 3.4*1038 and has 6 or 7 digits of accuracy9An aside: approximationsIntegers are precise, but real numbers are always approximate (inaccurate)Computers always use the binary system internallyMany numbers that can be expressed precisely in decimal cannot be represented precisely in binaryFor example, the numbers 1.1, 1.2, 1.3, and 1.4 can only be approximated in binaryTwo numbers that look the same may actually be subtly differentNever test floating point numbers for equality!Only test for larger or smaller, or for “not larger” or “not smaller”This is not a Java rule—it’s a programming rule10Giving names to numbersSometimes you know what a number isYou have 10 fingersThere are 24 hours in a dayπ is 3.141592653589793238Numbers written like this are called literalsYou can use literals anyplace in Java that you can use a numberIt’s usually better to use names instead:classSize, myBankBalance, myAge, speedometerReadingA literal used without explanation is called a magic numberExample: e = 8.987551787E16 * m;Better: energy = speedOfLightSquared * mass;Better yet: final double C = 2.99792458E8; e = m * C * C;Style rule: Avoid magic numbers!Sometimes names are simply more convenient, for example,Math.PI instead of 3.14159265358979323811VariablesBefore you use a variable, you must declare it (tell Java what type it is: int, double, char, ...) There are two reasons for this:Different types require different amounts of spaceSo Java can prevent you from doing something meaningless (adding 5 and true, or multiplying two dates together)Before you use a variable, you must also define it (tell Java what value it has)It makes no sense to print out your bankBalance, or to add 100.00 to your bankBalance, if you don’t have a meaningful, well-defined initial value for bankBalance to start withYou might assign an initial value to your variable, or compute a value, or read a value in; but you have to get one somehow12Declaring variablesYou declare variables like this: int classSize; double myBankBalance;When you declare a variable to be a primitive type, Java automatically finds space for itThe amount of space Java needs to find depends on the type of the variableThink of a variable as a specially shaped “box,” designed to hold a value of a particular typeAn int variable is four bytes long and there’s a special place for the sign bitA float variable is also four bytes long, but the bits are used differently--some are used to tell where the decimal point goes13Giving values to variablesA variable is just a name for some valueYou have to supply the actual value somehowJava tries to prevent you from using a variable that you haven’t given a valueYou can assign values like this: classSize = 57; myBankBalance = 123.01; // no "$"!14Number “width”Numeric types are considered wider or narrower than other numeric typesThis is based partly on number of bytes occupiedAlso based on how large a number it can holdJava doesn’t mind if you assign a narrow value to a wide variable: int n = 3;Java is not happy if you


View Full Document

Penn CIT 590 - Introduction to Primitives

Download Introduction to Primitives
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Introduction to Primitives and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Introduction to Primitives 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?