Friday, September 26, 2008

get SQL*Loader to COMMIT only at the end of the load file or one load multi-line records

How does one load multi-line records? (for DBA)
One can create one logical record from multiple physical records using one of the following two clauses:
. CONCATENATE: - use when SQL*Loader should combine the same number of physical records together to form one logical record.
. CONTINUEIF - use if a condition indicates that multiple records should be treated as one. Eg. by having a '#' character in column 1.

How can get SQL*Loader to COMMIT only at the end of the load file? (for DBA)
One cannot, but by setting the ROWS= parameter to a large value, committing can be reduced. Make sure you have big rollback segments ready when you use a high value for ROWS=.

improve the performance of SQL*Loader (HOW)

Can one improve the performance of SQL*Loader? (for DBA)
A very simple but easily overlooked hint is not to have any indexes and/or constraints (primary key) on your load tables during the load process. This will significantly slow down load times even with ROWS= set to a high value.
Add the following option in the command line: DIRECT=TRUE. This will effectively bypass most of the RDBMS processing. However, there are cases when you can't use direct load. Refer to chapter 8 on Oracle server Utilities manual.
Turn off database logging by specifying the UNRECOVERABLE option. This option can only be used with direct data loads. Run multiple load jobs concurrently.

use SQL*Loader to load images, sound clips and documents

How does one use SQL*Loader to load images, sound clips and documents? (for DBA)?


SQL*Loader can load data from a "primary data file", SDF (Secondary Data file - for loading nested tables and VARRAYs) or LOGFILE. The LOBFILE method provides and easy way to load documents, images and audio clips into BLOB and CLOB columns. Look at this example:
Given the following table:
CREATE TABLE image_table (
image_id NUMBER(5),
file_name VARCHAR2(30),
image_data BLOB);
Control File:
LOAD DATA
INFILE *
INTO TABLE image_table
REPLACE
FIELDS TERMINATED BY ','
(
image_id INTEGER(5),
file_name CHAR(30),
image_data LOBFILE (file_name) TERMINATED BY EOF
)
BEGINDATA
001,image1.gif
002,image2.jpg


difference between the conventional and direct path loader

What is the difference between the conventional and direct path loader? (for DBA)?

The conventional path loader essentially loads the data by using standard INSERT statements. The direct path loader (DIRECT=TRUE) bypasses much of the logic involved with that, and loads directly into the Oracle data files. More information about the restrictions of direct path loading can be obtained from the Utilities Users Guide.

Oracle Interview Questions and solution


What are the various types of Exceptions ?

User defined and Predefined Exceptions.

Can we define exceptions twice in same block ?
No.

What is the difference between a procedure and a function ?
Functions return a single variable by value whereas procedures do not return any variable by value. Rather they return multiple variables by passing variables by reference through their OUT parameter.

parts of a database trigger and various types of database triggers

What are the parts of a database trigger ?
The parts of a trigger are:
A triggering event or statement
A trigger restriction
A trigger action

What are the various types of database triggers ?
There are 12 types of triggers, they are combination of :
Insert, Delete and Update Triggers.
Before and After Triggers.
Row and Statement Triggers.
(3*2*2=12)


Can you have two functions with the same name in a PL/SQL block ?
Yes.

Can you have two stored functions with the same name ?
Yes.

Can you call a stored function in the constraint of a table ?
No.

What are the various types of parameter modes in a procedure ?
IN, OUT AND INOUT.

What is Over Loading and what are its restrictions ?
OverLoading means an object performing different functions depending upon the no. of parameters or the data type of the parameters passed to it.

Can functions be overloaded ?
Yes.

Can 2 functions have same name & input parameters but differ only by return datatype ?
No.

What are the constructs of a procedure, function or a package ?
The constructs of a procedure, function or a package are :
variables and constants
cursors
exceptions

Why Create or Replace and not Drop and recreate procedures ?
So that Grants are not dropped.

Can you pass parameters in packages ? How ?
Yes. You can pass parameters to procedures or functions in a package.

Oracle Interview Questions and Answers

What is the advantage of a stored procedure over a database trigger ?
We have control over the firing of a stored procedure but we have no control over the firing of a trigger.

What is the maximum no. of statements that can be specified in a trigger statement ?
One.

Can views be specified in a trigger statement ?
No

What are the values of :new and :old in Insert/Delete/Update Triggers ?
INSERT : new = new value, old = NULL
DELETE : new = NULL, old = old value
UPDATE : new = new value, old = old value

What are cascading triggers? What is the maximum no of cascading triggers at a time?
When a statement in a trigger body causes another trigger to be fired, the triggers are said to be cascading. Max = 32.

What are mutating triggers ?
A trigger giving a SELECT on the table on which the trigger is written.

What are constraining triggers ?
A trigger giving an Insert/Update on a table having referential integrity constraint on the triggering table.

Describe Oracle database's physical and logical structure ?
Physical : Data files, Redo Log files, Control file.
Logical : Tables, Views, Tablespaces, etc.

Can you increase the size of a tablespace ? How ?
Yes, by adding datafiles to it.

What is the use of Control files ?
Contains pointers to locations of various data files, redo log files, etc.

What is the use of Data Dictionary ?
Used by Oracle to store information about various physical and logical Oracle structures e.g. Tables, Tablespaces, datafiles, etc

advantages and disadvantages of clusters -oracle

What are the advantages of clusters ?
Access time reduced for joins.

What are the disadvantages of clusters ?
The time for Insert increases.

What is the maximum no. of columns a table can have ? -oracle

Can Long/Long RAW be clustered ?
No.

Can null keys be entered in cluster index, normal index ?
Yes.

Can Check constraint be used for self referential integrity ? How ?
Yes. In the CHECK condition for a column of a table, we can reference some other column of the same table and thus enforce self referential integrity.

What are the min. extents allocated to a rollback extent ?
Two

What are the states of a rollback segment ? What is the difference between partly available and needs recovery ?
The various states of a rollback segment are :
ONLINE, OFFLINE, PARTLY AVAILABLE, NEEDS RECOVERY and INVALID.

What is the difference between unique key and primary key ?
Unique key can be null; Primary key cannot be null.

An insert statement followed by a create table statement followed by rollback ? Will the rows be inserted ?
No.

an you define multiple savepoints ?
Yes.

Can you Rollback to any savepoint ?
Yes.

What is the maximum no. of columns a table can have ?
254.



significance of the & and && operators in PL/SQL

What is the significance of the & and && operators in PL SQL ?

The & operator means that the PL SQL block requires user input for a variable. The && operator means that the value of this variable should be the same as inputted by the user previously for this same variable. If a transaction is very large, and the rollback segment is not able to hold the rollback information, then will the transaction span across different rollback segments or will it terminate ? It will terminate (Please check ).

pass a parameter to a cursor -oracle

Can you pass a parameter to a cursor ?

Explicit cursors can take parameters, as the example below shows. A cursor parameter can appear in a query wherever a constant can appear. CURSOR c1 (median IN NUMBER) IS SELECT job, ename FROM emp WHERE sal > median;

Definition of relational DataBase by Dr. Codd (IBM)

What are the various types of RollBack Segments ?


Public Available to all instances
Private Available to specific instance

Can you use %RowCount as a parameter to a cursor ?


Yes

Is the query below allowed :
Select sal, ename Into x From emp Where ename = 'KING'
(Where x is a record of Number(4) and Char(15))

Yes

Is the assignment given below allowed :
ABC = PQR (Where ABC and PQR are records)

Yes

Is this for loop allowed :
For x in &Start..&End Loop

Yes

How many rows will the following SQL return :
Select * from emp Where rownum <>
9 rows

How many rows will the following SQL return :
Select * from emp Where rownum = 10;

No rows

Which symbol preceeds the path to the table in the remote database ?
@

Are views automatically updated when base tables are updated ?
Yes

Can a trigger written for a view ?
No

If all the values from a cursor have been fetched and another fetch is issued, the output will be : error, last record or first record ?
Last Record

A table has the following data : [[5, Null, 10]]. What will the average function return ?
7.5

Is Sysdate a system variable or a system function?
System Function

Consider a sequence whose currval is 1 and gets incremented by 1 by using the nextval reference we get the next number 2. Suppose at this point we issue an rollback and again issue a nextval. What will the output be ?


answer :3

Definition of relational DataBase by Dr. Codd (IBM)?


A Relational Database is a database where all data visible to the user is organized strictly as tables of data values and where all database operations work on these tables.

Multi Threaded Server (MTA) -oracle

What is Multi Threaded Server (MTA) ?
In a Single Threaded Architecture (or a dedicated server configuration) the database manager creates a separate process for each database user. But in MTA the database manager can assign multiple users (multiple user processes) to a single dispatcher (server process), a controlling process that queues request for work thus reducing the databases memory requirement and resources.

Which are initial RDBMS, Hierarchical & N/w database ?
RDBMS - R system
Hierarchical - IMS
N/W - DBTG

What is Functional Dependency ? or What is Auditing ?

What is Functional Dependency ?

Given a relation R, attribute Y of R is functionally dependent on attribute X of R if and only if each X-value has associated with it precisely one -Y value in R

What is Auditing ?
The database has the ability to audit all actions that take place within it.
a) Login attempts, b) Object Accesss, c) Database Action Result of Greatest(1,NULL) or Least(1,NULL) NULL

While designing in client/server what are the 2 imp. things to be considered ?
Network Overhead (traffic), Speed and Load of client server

When to create indexes ?
To be created when table is queried for less than 2% or 4% to 25% of the table rows.

How can you avoid indexes ?
TO make index access path unavailable - Use FULL hint to optimizer for full table scan - Use INDEX or AND-EQUAL hint to optimizer to use one index or set to indexes instead of another. - Use an expression in the Where Clause of the SQL.

What is the result of the following SQL :
Select 1 from dual
UNION
Select 'A' from dual;

Error

Can database trigger written on synonym of a table and if it can be then what would be the effect if original table is accessed.
Yes, database trigger would fire.

Can you alter synonym of view or view ?
No

Can you create index on view ?
No

What is the difference between a view and a synonym ?
Synonym is just a second name of table used for multiple link of database. View can be created with many tables, and with virtual columns and with conditions. But synonym can be on view.

What is the difference between alias and synonym ?
Alias is temporary and used with one query. Synonym is permanent and not used as alias.

What is the effect of synonym and table name used in same Select statement ?
Valid

What's the length of SQL integer ?
32 bit length

Difference between foreign key and reference key

What is the difference between foreign key and reference key ?


Foreign key is the key i.e. attribute which refers to another table primary key. Reference key is the primary key of table referred by another table.

Can dual table be deleted, dropped or altered or updated or inserted ?


Yes

If content of dual is updated to some value computation takes place or not ?


Yes

If any other table same as dual is created would it act similar to dual?


Yes

For which relational operators in where clause, index is not used ?


<> , like '% ...' is NOT functions, field +constant, field || ''

Assume that there are multiple databases running on one machine. How can you switch from one to another ?


Changing the ORACLE_SID

advantages of Oracle-oracle

What are the advantages of Oracle ?


Portability : Oracle is ported to more platforms than any of its competitors, running on more than 100 hardware platforms and 20 networking protocols.
Market Presence : Oracle is by far the largest RDBMS vendor and spends more on R & D than most of its competitors earn in total revenue. This market clout means that you are unlikely to be left in the lurch by Oracle and there are always lots of third party interfaces available.
Backup and Recovery : Oracle provides industrial strength support for on-line backup and recovery and good software fault tolerence to disk failure. You can also do point-in-time recovery.
Performance : Speed of a 'tuned' Oracle Database and application is quite good, even with large databases. Oracle can manage > 100GB databases.
Multiple database support : Oracle has a superior ability to manage multiple databases within the same transaction using a two-phase commit protocol.


What is a forward declaration ? What is its use ?


PL/SQL requires that you declare an identifier before using it. Therefore, you must declare a subprogram before calling it. This declaration at the start of a subprogram is called forward declaration. A forward declaration consists of a subprogram specification terminated by a semicolon.


Actual and formal parameters - oracle

What are actual and formal parameters ?

Actual Parameters : Subprograms pass information using parameters. The variables or expressions referenced in the parameter list of a subprogram call are actual parameters. For example, the following procedure call lists two actual parameters named emp_num and amount:
Eg. raise_salary(emp_num, amount);
Formal Parameters : The variables declared in a subprogram specification and referenced in the subprogram body are formal parameters. For example, the following procedure declares two formal parameters named emp_id and increase: Eg. PROCEDURE raise_salary (emp_id INTEGER, increase REAL) IS current_salary REAL;

all important parameters of the init.ora are supposed to be increased -oracle


What all important parameters of the init.ora are supposed to be increased if you want to increase the SGA size ?


In our case, db_block_buffers was changed from 60 to 1000 (std values are 60, 550 & 3500) shared_pool_size was changed from 3.5MB to 9MB (std values are 3.5, 5 & 9MB) open_cursors was changed from 200 to 300 (std values are 200 & 300) db_block_size was changed from 2048 (2K) to 4096 (4K) {at the time of database creation}.
The initial SGA was around 4MB when the server RAM was 32MB and The new SGA was around 13MB when the server RAM was increased to 128MB.


What are the types of Notation ?


Position, Named, Mixed and Restrictions.

What are various types of joins ? -oracle

If I have an execute privilege on a procedure in another users schema, can I execute his procedure even though I do not have privileges on the tables within the procedure ?
Yes

What are various types of joins ?
Equijoins, Non-equijoins, self join, outer join

What is a package cursor ?
A package cursor is a cursor which you declare in the package specification without an SQL statement. The SQL statement for the cursor is attached dynamically at runtime from calling procedures.

If you insert a row in a table, then create another table and then say Rollback. In this case will the row be inserted ?
Yes. Because Create table is a DDL which commits automatically as soon as it is executed. The DDL commits the transaction even if the create statement fails internally (eg table already exists error) and not syntactically.

various types of queries or transaction

What are the various types of queries ??
Normal Queries
Sub Queries
Co-related queries
Nested queries
Compound queries

What is a transaction ?
A transaction is a set of SQL statements between any two COMMIT and ROLLBACK statements.

What is implicit cursor and how is it used by Oracle ?
An implicit cursor is a cursor which is internally created by Oracle. It is created by Oracle for each individual SQL.

Which of the following is not a schema object : Indexes, tables, public synonyms, triggers and packages ?
Public synonyms

What is PL/SQL? -oracle

What is PL/SQL?


PL/SQL is Oracle's Procedural Language extension to SQL. The language includes object oriented programming techniques such as encapsulation, function overloading, information hiding (all but inheritance), and so, brings state-of-the-art programming to the Oracle database server and a variety of Oracle tools.

Is there a PL/SQL Engine in SQL*Plus?


No. Unlike Oracle Forms, SQL*Plus does not have a PL/SQL engine. Thus, all your PL/SQL are send directly to the database engine for execution. This makes it much more efficient as SQL statements are not stripped off and send to the database individually.

Is there a limit on the size of a PL/SQL block?


Currently, the maximum parsed/compiled size of a PL/SQL block is 64K and the maximum code size is 100K. You can run the following select statement to query the size of an existing package or procedure.
SQL> select * from dba_object_size where name = 'procedure_name'





read/write files from PL/SQL

Can one read/write files from PL/SQL?

Included in Oracle 7.3 is a UTL_FILE package that can read and write files. The directory you intend writing to has to be in your INIT.ORA file (see UTL_FILE_DIR=... parameter). Before Oracle 7.3 the only means of writing a file was to use DBMS_OUTPUT with the SQL*Plus SPOOL command.
DECLARE
fileHandler UTL_FILE.FILE_TYPE;
BEGIN
fileHandler := UTL_FILE.FOPEN('/home/oracle/tmp', 'myoutput','W');
UTL_FILE.PUTF(fileHandler, 'Value of func1 is %sn', func1(1));
UTL_FILE.FCLOSE(fileHandler);
END;

How can I protect my PL/SQL source code? -oracle

How can I protect my PL/SQL source code?
PL/SQL V2.2, available with Oracle7.2, implements a binary wrapper for PL/SQL programs to protect the source code. This is done via a standalone utility that transforms the PL/SQL source code into portable binary object code (somewhat larger than the original). This way you can distribute software without having to worry about exposing your proprietary algorithms and methods. SQL*Plus and SQL*DBA will still understand and know how to execute such scripts. Just be careful, there is no "decode" command available.
The syntax is:
wrap iname=myscript.sql oname=xxxx.yyy

Can one use dynamic SQL within PL/SQL? OR Can you use a DDL in a procedure ? How ?

Can one use dynamic SQL within PL/SQL? OR Can you use a DDL in a procedure ? How ?
From PL/SQL V2.1 one can use the DBMS_SQL package to execute dynamic SQL statements.
Eg: CREATE OR REPLACE PROCEDURE DYNSQL
AS
cur integer;
rc integer;
BEGIN
cur := DBMS_SQL.OPEN_CURSOR;
DBMS_SQL.PARSE(cur,'CREATE TABLE X (Y DATE)', DBMS_SQL.NATIVE);
rc := DBMS_SQL.EXECUTE(cur);
DBMS_SQL.CLOSE_CURSOR(cur);
END;

Wednesday, September 24, 2008

Java Interview Questions - How to define an Abstract class?

Java Interview Questions - How to define an Abstract class?
A class containing abstract method is called Abstract class. An Abstract class can't be instantiated.
Example of Abstract class:
abstract class testAbstractClass {
protected String myString;
public String getMyString() {
return myString;
}
public abstract string anyAbstractFunction();
}

How to define an Interface in Java ? - JAVA Interview Questions and Answers

How to define an Interface in Java ?
In Java Interface defines the methods but does not implement them. Interface can include constants. A class that implements the interfaces is bound to implement all the methods defined in Interface.
Emaple of Interface:

public interface sampleInterface {
public void functionOne();

public long CONSTANT_ONE = 1000;
}

program of baal game catch circles coming down with use left right arrow key

program of baal game catch circles coming down with use left right arrow key


Program
#include
#include
#include
#include
#include
#include
int a,b,ch;
int c=2,d=3;
static char msg[1];
static int chance,pts,x1,x2,y1,y2;
over()
{
int i=0,j,x=185,y=240;
while(i<1000) { j=1+rand()%15; setcolor(j); settextstyle(0,0,4); outtextxy(x,y,"GAME OVER"); delay(100); i++; } exit(1); return; } move(int x1,int x2,int y1,int y2,int k) { int i=0; i=i+10; if(k==1) //left {i=i; bar1(x2-i,x2,y1,y2,2); } else { i=-i; bar1(x1,x1-i,y1,y2,3); } bar1(x1-i,x2-i,y1,y2,1); return; } bar1(int x1,int x2,int y1,int y2,int k) { if(k==1) {c=2; d=3;} else {c=d=0;} setfillstyle(2,d); bar(x1,479-y1,x2,479-y2); return; } keyin() { int i; ch=getch(); switch(ch) { case 75: if(x1>24)
{
i=10; //left
move(x1,x2,y1,y2,1);
x2=x2-i;
x1=x1-i;
}
break;
case 77: //right
if(x2<614) { i=10; move(x1,x2,y1,y2,2); x1=x1+i; x2=x2+i; } break; }//end switch if(ch==27) over(); return; } ball() { int a,b,t=0; a=639-rand()%639; b=350; while(b>100)
{
b=b-1;
setcolor(RED);
if((a-5)<=x2&&(a+5)>=x1&&(479-(b-5)>=(479-y1))&&(479-(b+5)<=(479-y2)))
{score();
t=1;
break;}
if(kbhit())
keyin();
circle(a,479-b,5);
delay(10);
setcolor(BLACK);
circle(a,479-b,5);
}
if(t==0)
chance++;
if(chance==2)
over();
return;
}
score()
{
setcolor(0);
settextstyle(0,0,5);
sprintf(msg,"%d",pts);
outtextxy(110,20,msg);
setcolor(4);
sound(1100);
delay(50);
nosound();
pts++;
settextstyle(0,0,5);
sprintf(msg,"%d",pts);
outtextxy(110,20,msg);
return;
}
play()
{
while(ch!=27)
ball();
return;
}

program of 2 player game in c language

2 player game









Program
#include
#include
#include
#include
#include
static float a,b,h1,h2,x1=20,x2=25,y1=250,y2=200,x3=20,x4=25,y3=190,y4=140;
static int ch=3,ch1=3,q=1,t,s=1,s1,s2,c=0,c1=0,i=0,k=1,t1,t2,p1=0,p2=0;
gameover()
{
int j=0;
while(j<100) p="="1)" t="getpixel(x1+2,479-(y1+y2)/2);" t1="getpixel(a-6,479-b);">(479-(y1+y2)/2)&&(t1==2))
c=1; //down
else if((479-b)<(479-(y1+y2)/2)&&(t1==2)) c=2; //up return c; } else if(p==2) { t=getpixel(639-(x3+2),479-(y3+y4)/2); t2=getpixel(a+6,479-b); if((479-b)>(479-(y3+y4)/2)&&(t2==2))
{c1=1; //down
//printf("%2.f %2.f",479-(y3+y4)/2,479-b);
//printf("yes ");
}
else if((479-b)<(479-(y3+y4)/2)&&(t2==2)) { //printf("%2.f %2.f",479-(y3+y4)/2,479-b); c1=2; //up //printf("no "); } return c1; } return 0; } ball() { ch1=getch(); while(ch1!=13) { move(); ch1=getch(); if(ch1==27) break; } //ch1=getch(); if(ch1==13) { q=2; sound(1100); delay(50); nosound(); while(ch1!=27) { setfillstyle(1,5); setcolor(5); circle(a,479-b,5); floodfill(a,479-b,5); c=check(s1); c1=check(s2); delay(5); setfillstyle(1,0); setcolor(0); circle(a,479-b,5); floodfill(a,479-b,0); if(kbhit()) move(); if(k==1) { t=getpixel(639-(x3+2),479-(y3+y4)/2); t2=getpixel(a+7,479-b); if(t==t2) { sound(1100); delay(50); nosound(); h2=a; c=0;c1=0;//printf("h2=%2.f,yes",h2); k=2; } a++; } else if(k==2) { t=getpixel(x1,479-(y1+y2)/2); t1=getpixel(a-7,479-(b)); if(t==t1) { sound(1100); delay(50); nosound(); h1=a; c=0;c1=0; //printf("yes %2.f =h1",h1); k=1; } a--; } if((479-b)==(479-50)) { //printf("s=%d",s); if(c==1) c=2; else if(c1==1) c1=2; } if(a==639||(a+25)==639) { ch1=3; p1++; printf("%d %d",p1,p2); s=1; q=1; c=0; c1=0; start(1,5); } if(a==0||(a-25)==0) { p2++; s=2; c=0;c1=0; q=1; ch1=3; printf("%d %d",p1,p2); start(2,5); } if((479-b)==(479-429)) { //printf("s=%d",s); if(c1==2) c1=1; else if(c==2) c=1; } if(c==1) //down frm 1st { a++; b--; } else if(c==2) //up frm 1st { a++; b++; } else if(c1==1) { a--; b--; } else if(c1==2) { a--; b++; } if(p1==5||p2==5) gameover(); }//end while } //end ch if return; } move() { fflush(stdin); ch1=getch(); if(ch1==119||ch1==115) move1(); else move2(); return; } move1() { //ch1=getch(); switch(ch1) { case 119://up if(y1<=420) { if(q==1&&s==1) { star(1,0); //delay(1); } setfillstyle(1,2); bar(x1,479-(y1+10),x2,479-(y2+10)); //delay(1); setfillstyle(1,1); bar(x1,479-(y2),x2,479-(y2+10)); y1=y1+10; y2=y2+10; setfillstyle(1,2); if(q==1&&s==1) star(1,5); } break; case 115://down if(y2>=50)
{
if(q==1&&s==1)
{
star(1,0);
//delay(1);
}
setfillstyle(1,2);
bar(x1,479-(y1-10),x2,479-(y2-10));
//delay(1);
setfillstyle(1,1);
bar(x1,479-(y1),x2,479-(y1-10));
y1=y1-10;
y2=y2-10;
setfillstyle(1,2);
if(q==1&&s==1)
star(1,5);
}
break;
}
return;
}
move2()
{
switch(ch1)
{
case 112://up
if(y3<=420) { if(q==1&&s==2) star(2,0); setfillstyle(1,2); bar(639-x3,479-(y3+10),639-x4,479-(y4+10)); setfillstyle(1,1); bar(639-x3,479-(y4),639-x4,479-(y4+10)); y3=y3+10; y4=y4+10; setfillstyle(1,2); if(q==1&&s==2) star(2,5); } break; case 108://down if(y4>=(50))
{
if(q==1&&s==2)
star(2,0);
setfillstyle(1,2);
bar(639-x3,479-(y3-10),639-x4,479-(y4-10));
setfillstyle(1,1);
bar(639-x3,479-(y3),639-x4,479-(y3-10));
y3=y3-10;
y4=y4-10;
setfillstyle(1,2);
if(q==1&&s==2)
star(2,5);
}
break;
}
return;
}
star(int o,int c)
{
s=o;
if(s==1)
{
a=x2+7;
b=(y2+y1)/2;
i=608;
k=1;
s1=1;
s2=2;
setfillstyle(1,c);
setcolor(c);
circle(a,479-b,5);
floodfill(a,479-b,c);
}
if(s==2)
{
a=620-(x3-7);
b=(y3+y4)/2;
i=608;
k=2;
s1=1;
s2=2;
setfillstyle(1,c);
setcolor(c);
circle(a,479-b,5);
floodfill(a,479-b,c);
}
return;
}
start(int o,int c)
{
s=o;
if(s==1)
{
a=x2+7;
b=(y2+y1)/2;
i=608;
k=1;
s1=1;
s2=2;
setfillstyle(1,c);
setcolor(c);
circle(a,479-b,5);
floodfill(a,479-b,c);
}
if(s==2)
{
a=620-(x3-7);
b=(y3+y4)/2;
i=608;
k=2;
s1=1;
s2=2;
setfillstyle(1,c);
setcolor(c);
circle(a,479-b,5);
floodfill(a,479-b,c);
}
ball();
return;
}
play()
{
setfillstyle(1,2); //solid color
bar(x1,479-y1,x2,479-y2);
bar(639-x3,479-y3,639-x4,479-y4);
line(0,479-435,639,479-435);
line(0,440,639,440);
start(s,5);
return;
}
main()
{
int k,a=DETECT,b,ch;
initgraph(&a,&b,"D:\\TC\\BGI");
play();
getch();
return 0;
}

Program a menu driven program showing several operations on string.



Program
#include
#include
#include
void stringlen(char s1);
void stringcopy(char *s1);
void stringcon(char *s1);
void stringrev(char *s1);
void stringcompare(char *s1);
void wordcount(char *s1);
void lettercount(char *s1);
void main()
{
char s[40],x;
clrscr();
printf("\n Enter a string");
gets(s1);
printf("\n Enter 'a' for string length");
printf("\n Enter 'b' for string copy");
printf("\n Enter 'c' for string concatanation");
printf("\n Enter 'd' for string rev");
printf("\n Enter 'e' for string compare");
printf("\n Enter 'f' for word count within a string");
printf("\n Enter 'g' for letter count within a string\n");
scanf("%2c",&x);
switch(x)
{
case 'a':
stringlen(s1);
break;
case 'b':
stringcopy(s1);
break;
case 'c':
stringcon(s1);
break;
case 'd':
stringrev(s1);
break;
case 'e':
stringcompare(s1);
break;
case 'f':
wordcount(s1);
break;
case 'g':
lettercount(s1);
break;
}
}
void stringlen(char *s1)
{
int n=0;i=0;
while(s[i]!=NULL)
{
n++;
i++;
}
printf("length of the string is:-\n%d",n);
getch();
}
void stringcopy(char *s1)
{
int i;
char s2[40];
for(i=0;s1[i]=!NULL;i++)
{
s2=s1[i];
}
s2[i]=NULL;
printf("NEW STRING IS;-\n%s",s2);
getch();
}
void stringconcatanation(char *s1)
{
int i,j;
char str[40];
printf("ENTER ANOTHER STRING:-\n");
fflush(stdin);
gets(str);
for(i=0;s1[i]!=NULL;i++);
for(j=0;s1[j]!=NULL;j++)
{
s1[i]=str[j];
i++;
s1[i]=NULL;
}
printf("NEW STRING IS;-\n%s",s1);
getch();
}
void stringrev(char *s1)
{
int i,c=0,l;
char s2[100];
l=strlen(s1);
for(i=l-1;i>=0;i--)
s2[c++]=s1[i];
printf("NEW STRING IS \n");
for(i=0;i
printf("%c",s2[i]);
getch();
}
void stringcompare(char *s1)
{
int i,flag=1;
char s2[40];
printf("ENTER ANOTHER STRING");
fflush(stdin);
gets(*s2);
for(i=0;s2[i]!=NULL;i+)
{
if(s1[i]!=s2[i])
{
printf("\n not equal");
flag=0;break;
}
}
if(flag==1)
printf("equal");
getch();
}

program to check how many 1 there on binary code of a number

prg to chk how many 1 there on binary code of a number.......(popular q in interviews)




Program
#include

int main()
{
int i=10;
int count=0;


while(i)
{
if(i &1==1)
{
count++;
}
i>>=1;
}
printf("%d",count);
return 0;
}

program converts an infix string to postfix expression

program converts an infix string to postfix expression....i have kept no place for input..please change the char a[] in void main() and it will act as the input.....if any new symbols are to be added please add them to op[] and also its corresponding order of precedence in prec[]




















#include
#include
#include
#include
int top=0,opn=5;
char op[]={'^','*','/','+','-'};
int prec[]={1,2,2,3,3};
char pop(char s[]);
int isoperand(char);
void push(char s[],char);
int prcdnc(char,char);

void main()
{

char a[]="a+(b*c-(d/e^f)*g)*h",stk[50],c[50],temp,symb;
int l,i=0,r=0;
l=strlen(a);
a[l]=')';
a[l+1]=NULL;
stk[0]='(';
while(a[r]!=NULL)
{
symb=a[r];
if(isoperand(symb))
{
c[i]=symb;
i++;
}
else if(symb==')')
{
while(1)
{
temp=pop(stk);
if(temp=='(')
break;
else
{
c[i]=temp;
i++;
}
}
}
else if(symb=='(')
push(stk,symb);
else
{
while(1)
{
if(stk[top]=='(')
{
push(stk,symb);
break;
}
else if(prcdnc(stk[top],symb))
{
c[i]=pop(stk);
i++;
}
else
{ push(stk,symb);
break;
}
}
}
r++;
}
c[i]=NULL;
printf("\nThe post fix expression is= %s",c);
getch();
}

int prcdnc(char a,char b)
{
int num1,num2,i;
for(i=0;i
{
if(op[i]==a)

num1=prec[i];

if(op[i]==b)
num2=prec[i];
}
if(num2<=num1) return 0; else return 1; } void push(char s[],char a) { top=top+1; s[top]=a; } char pop(char s[]) { char val; val= s[top]; top=top-1; return val; } int isoperand(char a) { int i; if(a=='(' || a==')') return 0; for(i=0;i
{
if(op[i]==a)
return 0;
}
return 1;
}

To find saddle point in a triangle with c programming

Program
#include
#include
void main()
{
int a[5][5],i,j,min,max,m,n,flag=1,p,q;
printf("Enter size of the matrix");
scanf("%d%d",&m,&n);
printf("\nEnter the elements of the matrix");
for(i=0;ia[i][j])
min=a[i][j];
p=i;
q=j;
}
}
for(j=0;ja[p][q])
flag=0;
}
if(flag)
printf("Saddle point %d",a[p][q]);
else
printf("no saddle point");
flag=1;
getch();
}

how to use signature of printf in c programming language

how to use signature of printf... according to our needs.....




Program
#include
main()
{
char p[]={"gaurav kapoor"};
int *name;
name=&p;
printf(name);
return 0;}

Make a Binary tree from Infix expression

Program
Make a Binary tree from Infix expression.


Infix :-> 4 $ 2 * 3 - 3 + 8 / 4 / (1 + 1)


Solution: First separate the operator and operand
___________________________________________________________


Operator:-> $ * - + / / (+)


Operand:-> 4 2 3 3 8 4 1 1
___________________________________________________________


Now separate the operator according to their priority


First priority :-> ( + ) // Because ( ) has greater priority


Second priority :-> $


Third priority :-> * / /


Fourth priority :-> - +
_____________________________________________________
Step 1:
_____________________________________________________


Root will be fixed according to lowest priority


So, In Foruth priority - +


Here + will be the first root of tree (right to left)


+
_________________________________________________
Step 2:
_________________________________________________




Now - will be the left child of root of this tree


Because - is existing in left side of +.


+
/
/
-


_________________________________________________
Step 3:
_________________________________________________


Now in Third priority :-> * / /


Here / will be right child of +.


Because / is existing in right side of +.
+
/ \
/ \
- /


_________________________________________________
Step 4:
_________________________________________________


Here / will be right child of /.


Because / is existing in left side of /.
+
/ \
/ \
- (/) Devide sign (no 1)
/
/
(/) devide sign (no 2)


_________________________________________________
Step 5:
_________________________________________________
Here * will be left child of -.


Because, In infix expression, * is existing in left side of -.


+
/ \
/ \
- (/) Devide sign (no 1)
/ /
/ /
* (/) devide sign (no 2)


_________________________________________________
Step 6:
_________________________________________________


In Second priority:-> $


Here $ will be left child of *.


Because, In infix expression,


$ is existing in left side of *.


+
/ \
/ \
- (/) Devide sign (no 1)
/ /
/ /
* (/) devide sign (no 2)
/
/
$
_________________________________________________
Step 7:
_________________________________________________


In First priority:-> (+)


Here (+) will be left child of / (devide sign no 1).


Because, In infix expression,


$ is existing in left side of *.


+
/ \
/ \
- (/)
/ / \
/ / \
* (/) +
/
/
$


_________________________________________________
Step 8:
_________________________________________________


Now As we know the expression is


Infix :-> 4 $ 2 * 3 - 3 + 8 / 4 / (1 + 1)


Operand:-> 4 2 3 3 8 4 1 1


Now put the operand only


_____________________________________________________


First of all take 4, Here 4 will be left child of $.


Because 4 is left side of $ in expression


+
/ \
/ \
- (/)
/ / \
/ / \
* (/) +
/
/
$
/
/
4
_____________________________________________________


Now take 2 , Here 2 will be right child of $.


Because 2 is right side of $ in expression.


+
/ \
/ \
- (/)
/ / \
/ / \
* (/) +
/
/
$
/ \
/ \
4 2
_____________________________________________________


Now take 3 , Here 3 will be right child of *.


Because 3 is right side of * in expression.


+
/ \
/ \
- (/)
/ / \
/ / \
* (/) +
/ \
/ \
$ 3
/ \
/ \
4 2


_____________________________________________________


Now take 8, Here 8 will be left child of /(devide sign no 2).


Because 8 is left side of / in expression. Here i am not saying that 8 will be right child of +. Because / is the right child of +. And operand won't be root in Tree. So i am taking Here 8 will be left child of /(devide sign no 2).


+
/ \
/ \
- (/)
/ \ / \
/ \ / \
* 3 (/) +
/ \ /
/ \ /
$ 3 8
/ \
/ \
4 2


________________________________________________________


Now take 4, Here 4 will be right child of /(devide sign no 2).


Because 4 is right side of / in the given expression.


+(first +)
/ \
/ \
- (/)
/ \ / \
/ \ / \
* 3 (/) + (second +)
/ \ / \
/ \ / \
$ 3 8 4
/ \
/ \
4 2


________________________________________________________


Now take 1, Here 1 will be left child of + (second +).


Because 1 is right side of /(devide sign no 2) in the given expression.


+ (first +)
/ \
/ \
- (/)
/ \ / \
/ \ / \
* 3 (/) + (second +)
/ \ / \ /
/ \ / \ /
$ 3 8 4 1
/ \
/ \
4 2




________________________________________________________


Now take 1, Here 1 will be right child of + (second +).


Because 1 is right side of + (second +) in the given expression.


+
/ \
/ \
- (/)
/ \ / \
/ \ / \
* 3 (/) +
/ \ / \ / \
/ \ / \ / \
$ 3 8 4 1 1
/ \
/ \
4 2


-------------------------------------------
The final Tree for an expression |
|
Infix :-> 4 $ 2 * 3 - 3 + 8 / 4 / (1 + 1) |
|
-------------------------------------------
|
+ |
/ \ |
/ \ |
- (/) |
/ \ / \ |
/ \ / \ |
* 3 (/) + |
/ \ / \ / \ |
/ \ / \ / \ |
$ 3 8 4 1 1 |
/ \ |
/ \ |
4 2 |
|
-------------------------------------------

easy and basic calculator in c programming language

easy and basic calculator.






just add your own detail.
Program
#include
#include
#define P printf
#define S scanf


int main(){

float x,y,sum,diff,prod,qou;


P("Enter first integer: ");
S("%f",&x);

P("Enter second integer: ");
S("%f",&y);

sum=x+y;
P("\nThe Sum is:%.2f",sum);

diff=x-y;
P("\nThe Difference is:%.2f",diff);

prod=x*y;
P("\nThe Product is:%.2f",prod);

qou=x/y;
P("\nThe Qoutient is:%.2f",qou);


getch();
return 0;

}

CLOCK program in c programming language

Description:
to find out the clock
Program
#include

#include
#include
#include

#include "i2c.h"
#include "lcd.h"

idata char g_strSetting[20] ;

unsigned char day, mon, year ;
unsigned char hh,mm,ss ;
unsigned char g_byLastSec ;

unsigned int iday, imon, iyear ;
unsigned int ihh,imm,iss ;

void main ()
{
/*
// initialize serial port
// 19200 baud assuming P89C51RD2 @ 12 MHz
RCAP2H = 0xff ;
RCAP2L = 0xd9 ;
T2CON = 0x34 ;
SCON = 0x70 ;
*/
TH1 = 0xfd ;
TL1 = 0xfd ;
PCON |= 0x80 ;
SCON = 0x70 ;
TMOD = 0x21 ;
TCON = 0x50 ;


lcd_init() ;
printf("Clock program for Mini51\n") ;
display_row(0,"CLOCK on Mini51") ;
if (RI)
{
// send CR during reset, to goto clock set mode
getchare() ;
while(1)
{
printf("\nEnter data and time in dd mm yy hh mm ss format\n") ;
scanf("%x%x%x%x%x%x",&iday,&imon,&iyear,&ihh,&imm,&iss) ;
day = iday ;
mon = imon ;
year = iyear ;
hh = ihh ;
mm = imm ;
ss = iss ;
printf("You entered:\n%02bx-%02bx-%02bx %02bx:%02bx:%02bx\n",day,mon,year,hh,mm,ss) ;
printf("Press Y to store these values to RTC, any other to discard\n") ;
if (getchare() == 'Y')
{
write_rtc_byte(DAY_ADDR,day) ;
write_rtc_byte(MONTH_ADDR,mon) ;
write_rtc_byte(YEAR_ADDR,year) ;
write_rtc_byte(HOURS_ADDR,hh) ;
write_rtc_byte(MINUTES_ADDR,mm) ;
write_rtc_byte(SECONDS_ADDR,ss) ;
break ;
}
}
}
g_byLastSec = 0xff ;
while(1)
{
day = read_rtc_byte(DAY_ADDR) ;
mon = read_rtc_byte(MONTH_ADDR) ;
year = read_rtc_byte(YEAR_ADDR) ;
hh = read_rtc_byte(HOURS_ADDR) ;
mm = read_rtc_byte(MINUTES_ADDR) ;
ss = read_rtc_byte(SECONDS_ADDR) ;
if (ss != g_byLastSec)
{
sprintf(g_strSetting,"%02bx-%02bx %02bx:%02bx:%02bx",day,mon,hh,mm,ss) ;
display_row(1,g_strSetting) ;
//printf("%s\n",g_strSetting) ;
printf("%02bx-%02bx-%02bx %02bx:%02bx:%02bx\n",day,mon,year,hh,mm,ss) ;
g_byLastSec = ss ;
}
}
}

JAVA Interview Question With Answer

What interface must an object implement before it can be written to a stream as an object?
An object must implement the Serializable or Externalizable interface before it can be written to a stream as an object.

What is the ResourceBundle class?
The ResourceBundle class is used to store locale-specific resources that can be loaded by a program to tailor the program's appearance to the particular locale in which it is being run.
How do you know if an explicit object casting is needed?
If you assign a superclass object to a variable of a subclass's data type, you need to do explicit casting. For example:
Object a; Customer b; b = (Customer) a;
When you assign a subclass to a variable having a supeclass type, the casting is performed automatically.

What is a Java package and how is it used?
A Java package is a naming context for classes and interfaces. A package is used to create a separate name space for groups of classes and interfaces. Packages are also used to organize related classes and interfaces into a single API unit and to control accessibility to these classes and interfaces.

How do you restrict a user to cut and paste from the html page?
Using Servlet or client side scripts to lock keyboard keys. It is one of solutions.

What is the difference between interface and abstract class? - JAVA Interview Questions and Answers

What is the difference between interface and abstract class?
interface contains methods that must be abstract; abstract class may contain concrete methods. interface contains variables that must be static and final; abstract class may contain non-final and final variables. members in an interface are public by default, abstract class may contain non-public members. interface is used to "implements"; whereas abstract class is used to "extends". interface can be used to achieve multiple inheritance; abstract class can be used as a single inheritance. interface can "extends" another interface, abstract class can "extends" another class and "implements" multiple interfaces. interface is absolutely abstract; abstract class can be invoked if a main() exists. interface is more flexible than abstract class because one class can only "extends" one super class, but "implements" multiple interfaces. If given a choice, use interface instead of abstract class.

What is Java?-JAVA Interview Questions and Answers

What is Java?
Java is an object-oriented programming language developed initially by James Gosling and colleagues at Sun Microsystems. The language, initially called Oak (named after the oak trees outside Gosling's office), was intended to replace C++, although the feature set better resembles that of Objective C. Java should not be confused with JavaScript, which shares only the name and a similar C-like syntax. Sun Microsystems currently maintains and updates Java regularly.

What does a well-written OO program look like?

What does a well-written OO program look like?
A well-written OO program exhibits recurring structures that promote abstraction, flexibility, modularity and elegance.

JAVA Interview Questions and Answers -virtual functions in Java

Can you have virtual functions in Java?
Yes, all functions in Java are virtual by default। This is actually a pseudo trick question because the word "virtual" is not part of the naming convention in Java (as it is in C++, C-sharp and VB.NET), so this would be a foreign concept for someone who has only coded in Java. Virtual functions or virtual methods are functions or methods that will be redefined in derived classes.


What does a well-written OO program look like?
A well-written OO program exhibits recurring structures that promote abstraction, flexibility, modularity and elegance.

advisable to create a thread, by implementing a Runnable interface or by extending Thread class

What is more advisable to create a thread, by implementing a Runnable interface or by extending Thread class?
Strategically speaking, threads created by implementing Runnable interface are more advisable. If you create a thread by extending a thread class, you cannot extend any other class. If you create a thread by implementing Runnable interface, you save a space for your class to extend another class now or in future.

JAVA Interview Questions and Answers - ifference between an interface and an abstract class

What's the difference between an interface and an abstract class?

An abstract class may contain code in method bodies, which is not allowed in an interface. With abstract classes, you have to inherit your class from it and Java does not allow multiple inheritance. On the other hand, you can implement multiple interfaces in your class

What is NullPointerException and how to handle it?-JAVA Interview Questions and Answers

What is NullPointerException and how to handle it?

When an object is not initialized, the default value is null. When the following things happen, the NullPointerException is thrown:
--Calling the instance method of a null object.
--Accessing or modifying the field of a null object.
--Taking the length of a null as if it were an array.
--Accessing or modifying the slots of null as if it were an array.
--Throwing null as if it were a Throwable value.
The NullPointerException is a runtime exception. The best practice is to catch such exception even if it is not required by language design.

Java classes direct program messages to the system console, but error messages, say to a file

How could Java classes direct program messages to the system console, but error messages, say to a file?
The class System has a variable out that represents the standard output, and the variable err that represents the standard error device. By default, they both point at the system console. This how the standard output could be re-directed:
Stream st = new Stream(new FileOutputStream("output.txt")); System.setErr(st); System.setOut(st);

Java classes direct program messages to the system console, but error messages, say to a file

How could Java classes direct program messages to the system console, but error messages, say to a file?
The class System has a variable out that represents the standard output, and the variable err that represents the standard error device. By default, they both point at the system console. This how the standard output could be re-directed:
Stream st = new Stream(new FileOutputStream("output.txt")); System.setErr(st); System.setOut(st);

needs to load a library before it starts to run, how to code - JAVA Interview Questions and Answers

An application needs to load a library before it starts to run, how to code?
One option is to use a static block to load a library before anything is called. For example,
class Test {
static {
System.loadLibrary("path-to-library-file");
}
....
}
When you call new Test(), the static block will be called first before any initialization happens. Note that the static block position may matter.

difference between an interface and an abstract class -JAVA Interview Questions and Answers

What's the difference between an interface and an abstract class?

An abstract class may contain code in method bodies, which is not allowed in an interface. With abstract classes, you have to inherit your class from it and Java does not allow multiple inheritance. On the other hand, you can implement multiple interfaces in your class

Synchronization - JAVA Interview Questions and Answers

What do you understand by Synchronization?
Synchronization is a process of controlling the access of shared resources by the multiple threads in such a manner that only one thread can access one resource at a time. In non synchronized multithreaded application, it is possible for one thread to modify a shared object while another thread is in the process of using or updating the object's value.
Synchronization prevents such type of data corruption.
E.g. Synchronizing a function:
public synchronized void Method1 () {
// Appropriate method-related code.
}
E.g. Synchronizing a block of code inside a function:
public myFunction (){
synchronized (this) {
// Synchronized code here.
}
}

What is Collection API ?- JAVA Interview Questions and Answers

What is Collection API ?
The Collection API is a set of classes and interfaces that support operation on collections of objects. These classes and interfaces are more flexible, more powerful, and more regular than the vectors, arrays, and hashtables if effectively replaces.
Example of classes: HashSet, HashMap, ArrayList, LinkedList, TreeSet and TreeMap.
Example of interfaces: Collection, Set, List and Map.

Is Iterator a Class or Interface? What is its use?
Answer: Iterator is an interface which is used to step through the elements of a Collection.




What is a transient variable in Java?
A transient variable is a variable that may not be serialized. If you don't want some field to be serialized, you can mark that field transient or static.

Which containers use a border layout as their default layout?
The Window, Frame and Dialog classes use a border layout as their default layout.

How are Observer and Observable used?
Objects that subclass the Observable class maintain a list of observers. When an Observable object is updated, it invokes the update() method of each of its observers to notify the observers that it has changed state. The Observer interface is implemented by objects that observe Observable objects.

synchronized methods and synchronized statements -JAVA Interview Questions and Answers

What are synchronized methods and synchronized statements?
Synchronized methods are methods that are used to control access to a method or an object. A thread only executes a synchronized method after it has acquired the lock for the method's object or class. Synchronized statements are similar to synchronized methods. A synchronized statement can only be executed after a thread has acquired the lock for the object or class referenced in the synchronized statement.

difference between Serializalble and Externalizable interface -JAVA Interview Questions and Answers

How many methods in the Serializable interface?
There is no method in the Serializable interface. The Serializable interface acts as a marker, telling the object serialization tools that your class is serializable.

How many methods in the Externalizable interface?
There are two methods in the Externalizable interface. You have to implement these two methods in order to make your class externalizable. These two methods are readExternal() and writeExternal().

What is the difference between Serializalble and Externalizable interface?
When you use Serializable interface, your class is serialized automatically by default. But you can override writeObject() and readObject() two methods to control more complex object serailization process. When you use Externalizable interface, you have a complete control over your class's serialization process.

What is synchronization and why is it important?

What is synchronization and why is it important?
With respect to multithreading, synchronization is the capability to control the access of multiple threads to shared resources. Without synchronization, it is possible for one thread to modify a shared object while another thread is in the process of using or updating that object's value. This often causes dirty data and leads to significant errors.


What are three ways in which a thread can enter the waiting state?
A thread can enter the waiting state by invoking its sleep() method, by blocking on IO, by unsuccessfully attempting to acquire an object's lock, or by invoking an object's wait() method. It can also enter the waiting state by invoking its (deprecated) suspend() method.

Can a lock be acquired on a class?
Yes, a lock can be acquired on a class. This lock is acquired on the class's Class object.

What's new with the stop(), suspend() and resume() methods in JDK 1.2?
The stop(), suspend() and resume() methods have been deprecated in JDK 1.2.

What is the preferred size of a component?
The preferred size of a component is the minimum component size that will allow the component to display normally.

What's the difference between J2SDK 1.5 and J2SDK 5.0?
There's no difference, Sun Microsystems just re-branded this version.

What would you use to compare two String variables - the operator == or the method equals()?
I'd use the method equals() to compare the values of the Strings and the == to check if two variables point at the same instance of a String object.

What is thread?
A thread is an independent path of execution in a system.

What is multi-threading?
Multi-threading means various threads that run in a system.

How does multi-threading take place on a computer with a single CPU?
The operating system's task scheduler allocates execution time to multiple tasks. By quickly switching between executing tasks, it creates the impression that tasks execute sequentially.

How to create a thread in a program?
You have two ways to do so. First, making your class "extends" Thread class. Second, making your class "implements" Runnable interface. Put jobs in a run() method and call start() method to start the thread.

Can Java object be locked down for exclusive use by a given thread?
Yes. You can lock an object by putting it in a "synchronized" block. The locked object is inaccessible to any thread other than the one that explicitly claimed it.

Can each Java object keep track of all the threads that want to exclusively access to it?
Yes. Use Thread.currentThread() method to track the accessing thread.

Does it matter in what order catch statements for FileNotFoundException and IOExceptipon are written?
Yes, it does. The FileNoFoundException is inherited from the IOException. Exception's subclasses have to be caught first.

What invokes a thread's run() method?
After a thread is started, via its start() method of the Thread class, the JVM invokes the thread's run() method when the thread is initially executed.

difference between Process and Thread - JAVA Interview Questions and Answers

What is the difference between Process and Thread?
A process can contain multiple threads. In most multithreading operating systems, a process gets its own memory address space; a thread doesn't. Threads typically share the heap belonging to their parent process. For instance, a JVM runs in a single process in the host O/S. Threads in the JVM share the heap belonging to that process; that's why several threads may access the same object. Typically, even though they share a common heap, threads have their own stack space. This is how one thread's invocation of a method is kept separate from another's. This is all a gross oversimplification, but it's accurate enough at a high level. Lots of details differ between operating systems. Process vs. Thread A program vs. similar to a sequential program an run on its own vs. Cannot run on its own Unit of allocation vs. Unit of execution Have its own memory space vs. Share with others Each process has one or more threads vs. Each thread belongs to one process Expensive, need to context switch vs. Cheap, can use process memory and may not need to context switch More secure. One process cannot corrupt another process vs. Less secure. A thread can write the memory used by another thread

My Blog List