Downloads; For Developers; Java SE JDK and JRE 8.291 Java allows you to play online games, chat with people around the world, calculate your mortgage interest, and view images in 3D, just to name. Java SE Runtime Environment 8 Downloads. Do you want to run Java™ programs, or do you want to develop Java programs? If you want to run Java programs, but not develop them, download the Java Runtime Environment, or JRE™. Even today, with e.g. Java =9, certain build tools print out 'reflective access'-warnings when building Java projects, which simply 'feels not ready', even though the builds are fine. Up until Java 8 you were pretty much using Oracle’s JDK builds and you did not have to care about licensing.
A collection that contains no duplicate elements. More formally, sets contain no pair of elementse1
and e2
such that e1.equals(e2)
, and at most one null element. As implied by its name, this interface models the mathematical set abstraction. The Set interface places additional stipulations, beyond those inherited from the Collection interface, on the contracts of all constructors and on the contracts of the add, equals and hashCode methods. Declarations for other inherited methods are also included here for convenience. (The specifications accompanying these declarations have been tailored to the Set interface, but they do not contain any additional stipulations.)
The additional stipulation on constructors is, not surprisingly, that all constructors must create a set that contains no duplicate elements (as defined above).
Note: Great care must be exercised if mutable objects are used as set elements. The behavior of a set is not specified if the value of an object is changed in a manner that affects equals comparisons while the object is an element in the set. A special case of this prohibition is that it is not permissible for a set to contain itself as an element.
Some set implementations have restrictions on the elements that they may contain. For example, some implementations prohibit null elements, and some have restrictions on the types of their elements. Attempting to add an ineligible element throws an unchecked exception, typically NullPointerException or ClassCastException. Attempting to query the presence of an ineligible element may throw an exception, or it may simply return false; some implementations will exhibit the former behavior and some will exhibit the latter. More generally, attempting an operation on an ineligible element whose completion would not result in the insertion of an ineligible element into the set may throw an exception or it may succeed, at the option of the implementation. Such exceptions are marked as 'optional' in the specification for this interface.
This interface is a member of the Java Collections Framework.
Scheduled for Fall 2021
CPSC 124: Introductory Programming (See the tentative syllabus and course web page.)
Free Online Textbook: Introduction to Programming Using Java
CPSC 424: Introduction to Computer Graphics (See the tentative syllabus and course web page.)
Free Online Textbook: Introduction to Computer Graphics
Note: I will not teach in Spring 2022.
I will be back for one more semester in Fall 2022
and will retire at the end of December 2022.
Previous Courses:
Here is a list of courses I have taught,including syllabi from many past terms.
And here is a complete listof all the Honors projects and Independent Studies
that I have supervised over my years at Hobart and William Smith Colleges.
Java 8.11
The first programming course at Hobart and William Smith Collegescovers the Java programming language. Since we started teaching Javain 1996, the textbook for the course has been various versionsof a free on-line Java textbook that I wrote for the course.The most recent version is Introduction to Programming Using Java, Version 8.1.3.It requires Java 8 or higher and JavaFX for graphical programming.It is available at
Older versions of the book are also available; see thePreface tothe 8th edition for links.
Java 8.191 64-bit Download
The textbook is an introduction to programming and also an introduction to Java directed towards people who do not have any background in programming.You can use it on-line or download a copy for use on your own computer.PDF and print versions are also available. Links can be found at the bottoms of the book's web page.
An introductory computer graphics textbook, available for use on-line.There are also links on the front page for downloading the web-site version or a PDF version.This book was used in my Computer Graphics course in Fall 2015 and in Fall 2017,and it will be used again in Fall 2021.
The prerequisite for the book is two semesters of computer programming in Java, C/C++, or JavaScript,including a basic knowledge of data structures, objects, and object-oriented programming. It coverscore concepts from 2D graphics in Java, JavaScript, and SVG; 3D graphics with old-fashioned OpenGL 1.1; the three.jsJavaScript library for 3D Web graphics; and WebGL, the modern version of OpenGL for the Web.There is an appendix with short introductions to the essential features of Java, C, and JavaScript.See the Preface for more information.The book is available at
For many years, I wrote small web applications as Java applets. However, appletsare no longer supported in webbrowsers. A more modern alternative to Java Applets is to write web applications inJavaScript, which is well-supported in all modern browsers. (Note that Java and JavaScriptare completely different languages, in spite of the names.) One of my projects for my sabbaticalleave in Spring 2016 was to learn JavaScript better and to write some JavaScript Web apps.So far, I have ported some of my examples from Java to JavaScript, and added a few new appsthat were written originally in JavaScript.The work that I have done so far is available on this page:
Here are direct links to some of the more interesting examples:
Java 8.101
- Genetic Algorithms Demo: Demonstrates the Genetic Algorithm by showing how some simple simulated organisms evolve over a series of generations.
- Mandelbrot Viewer: Explore the famous Mandelbrot set, and make some amazing pictures!
- Pentominos Puzzle Solver: Solves pentominos puzzles, which involve placing twelve pieces of various shapes on a board. Fun to watch.
- Wallpaper Groups: Draw symmetric patterns in the plane, where the symmetry is given by one of the seventeen wallpaper groups.
- xSortLab: Learn about five sorting algorithms and compare their run times.
- Turing Machine Simulation: Create and run simulated Turing machines.
The Mandelbrot set, in particular, is amazing. There is a largecollection of images thatare visualizations of pieces of that set. Click on any of the small images on that page to load that example into the Mandelbrot Viewer, where you can see a larger version of the image andexplore it further.
CPSC 229: Foundations of Computer Science is anintroductory course in theoretical computer science. It is a requiredcourse in the Computer Science major. For several years, the textbookin this course has been a set of notes written by Professor CarolCritchlow and me. This set of notes is now available for readingon-line or for downloading, at no charge. For more information andlinks to the PDF version of the book, see:
(A printed textbook can be ordered for the cost of reproduction from lulu.com.)
My introductory computer science textbook, The Most Complex Machine, was published in July, 1995. The book surveys most of the major areas of computer science, and is suitable as a textbook for a first course incomputer science. It is also suitable for self-study. A review of in theApril '96 issue of CHOICE magazine says that it is'Stronglyrecommended as a foundation for guided self-study for gifted high-schoolstudents, as well as non-computing majors.' You can readmore about it here.A set of applets and labsfor use with the text is freely available on-line.
This book is now quite old, and I really don't understand why the publisherhas kept it in print. However, it is not so out-of-date as most computerbooks published in the 1990s. The applets, written in an old version of Java,are not as attractive as they could be, but some of them are stilluseful. In particular:
- xSortLab -- A visual demonstrationof several sorting algorithms.
- xTuringMachine -- A Turing Machinesimulator.
- xLogicCircuits -- Create and runsimulated circuits made from AND, OR, and NOT gates.
- xComputer -- Simulates a complete,simple computer that is programmable in assembly language.
Java 8.144
The source code for the applets can be downloaded fromthis page.You can also get .jar files for running the applets as stand-aloneprograms.
Unfortunately, Java applets have themselves become old-fashioned and unusable in most web browsers.I have written more modern web app versions of several of the applets. SeexSortLab, xTuringMachine, xComputer, andxTurtle, .
Java 8.11
Java 8.171 Download Offline
'The Innocent Eye Test' by Mark Tansey (1981)