Friday, 29 August 2014

What is the difference between STRINGBUFFER and STRING?

What is the difference between STRINGBUFFER and STRING?
String object is immutable. i.e , the value stored in the String object cannot be changed. For e.g.
String myString = “Hello”;
myString = myString + ” Guest”;
System.out.println("myString " + myString);
When you run System.out on myString  the output will be “Hello Guest”. Although we made use of the same object (myString), internally a new object was created in the process because -  String is an immutable class in java . That’s a performance issue.
StringBuffer/StringBuilder objects are  mutable   StringBuffer/StringBuilder objects are mutable i.e. we can make changes to the value stored in the object. This means is that string operations such as append would be more efficient if performed using StringBuffer/StringBuilder objects than String objects.
String str = “Be Happy With Your Salary.''
str += “Because Increments are a myth";
StringBuffer strbuf = new StringBuffer();
strbuf.append(str);
System.out.println(strbuf);
The Output of the code snippet would be: Be Happy With Your Salary. Because Increments are a myth. But here the difference is that only one  object of stringbuffer is created in the example. That improves space complexity of the program. 

Thursday, 28 August 2014

A sample ant build script and its explaination

A sample build script is given below . Please refer comments for explaination

<?xml version="1.0" ?>
<!-- Default compilation action for ant build -->
<project name="<Your application>" default="compile">
<path id="compile.classpath">
<fileset dir="WEB-INF/lib">
<include name="*.jar"/>
</fileset>
</path>
<!-- init target for ant build -->
<!-- creates classes , conf , dist folders. -->
<target name="init">
<delete dir="WEB-INF/classes"/>
<mkdir dir="WEB-INF/classes/conf"/>
<mkdir dir="dist" />
</target>
<!-- As specified in project tag default action in build will be called -->
<target name="compile" depends="init" >
<!-- Compile all classes and copy them to WEB-INF/classes -->
<javac destdir="WEB-INF/classes" debug="true" srcdir="src">
<classpath refid="compile.classpath"/>
</javac>

<copy todir="WEB-INF/classes">
<fileset dir="conf"/>
</copy>
</target>
<!-- Compile and package the classes to a war -->
<target name="war">
<war destfile="dist/s31.war" webxml="WEB-INF/web.xml">
<fileset dir="../dist"/>
<lib dir="WEB-INF/lib"/>
<classes dir="WEB-INF/classes"/>
</war>
</target>
</project>

Tuesday, 26 August 2014

Linux Commands



File Commands




1.
ls
Directory listing
2.
ls -al
Formatted listing with hidden files
3.
ls -lt
Sorting the Formatted listing by time modification
4.
cd dir
Change directory to dir
5.
cd
Change to home directory
6.
pwd
Show current working directory
7.
mkdir dir
Creating a directory dir
8.
cat >file
Places the standard input into the file
9.
more file
Output the contents of the file
10.
head file
Output the first 10 lines of the file
11.
tail file
Output the last 10 lines of the file
12.
tail -f file
Output the contents of file as it grows,starting with


the last 10 lines
13.
touch file
Create or update file
14.
rm file
Deleting the file
15.
rm -r dir
Deleting the directory
16.
rm -f file
Force to remove the file
17.
rm -rf dir
Force to remove the directory dir
18.
cp file1 file2
Copy the contents of file1 to file2
19.
cp -r dir1 dir2
Copy dir1 to dir2;create dir2 if not present
20.
mv file1 file2
Rename or move file1 to file2,if file2 is an existing


directory
21.
ln -s file link
Create symbolic link link to file
Process management

1.
ps
To display the currently working processes
2.
top
Display all running process




3.
kill pid
Kill the process with given pid
4.
killall proc
Kill all the process named proc
5.
pkill pattern
Will kill all processes matching the pattern
6.
bg
List stopped or background jobs,resume a stopped


job in the background
7.
fg
Brings the most recent job to foreground
8.
fg n
Brings job n to the foreground




Searching

1.
grep pattern file
Search for pattern in file
2.
grep -r pattern dir
Search recursively for pattern in dir
3.
command | grep 
Search pattern in the output of a command

pa

4.
locate file
Find all instances of file
5.
find . -name filename
Searches in the current directory (represented by


a period) and below it, for files and directories with


names starting with filename
6.
pgrep pattern
Searches for all the named processes , that


matches with the pattern and, by default, returns


their ID




System Info

1.
date
Show the current date and time
2.
cal
Show this month's calender
3.
uptime
Show current uptime
4.
w
Display who is on line
5.
whoami
Who you are logged in as




6.
finger user
Display information about user
7.
uname -a
Show kernel information
8.
cat /proc/cpuinfo
Cpu information
9.
cat proc/meminfo
Memory information
10.
man command
Show the manual for command
11.
df
Show the disk usage
12.
du
Show directory space usage
13.
free
Show memory and swap usage
14.
whereis app
Show possible locations of app
15.
which app
Show which applications will be run by default




Compression

1.
tar cf file.tar file
Create tar named file.tar containing file
2.
tar xf file.tar
Extract the files from file.tar
3.
tar czf file.tar.gz files
Create a tar with Gzip compression
4.
tar xzf file.tar.gz
Extract a tar using Gzip
5.
tar cjf file.tar.bz2
Create tar with Bzip2 compression
6.
tar xjf file.tar.bz2
Extract a tar using Bzip2
7.
gzip file
Compresses file and renames it to file.gz
8.
gzip -d file.gz
Decompresses file.gz back to file




Network

1.
ping host
Ping host and output results
2.
whois domain
Get whois information for domains
3.
dig domain
Get DNS information for domain
4.
dig -x host
Reverse lookup host
5.
wget file
Download file
6.
wget -c file
Continue a stopped download







Shortcuts

1.
ctrl+c
Halts the current command
2.
ctrl+z
Stops the current command, resume with fg in the


foreground or bg in the background
3.
ctrl+d
Logout the current session, similar to exit
4.
ctrl+w
Erases one word in the current line
5.
ctrl+u
Erases the whole line
6.
ctrl+r
Type to bring up a recent command
7.
!!
Repeats the last command
8.
exit
Logout the current session